English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
# 翻訳警告
このドキュメントは自動的に翻訳されています。翻訳エラーがある場合は、プロジェクトの
プルリクエストを開き、
翻訳されたファイルを docs/{ISO 639-1 Code}.md に追加してください。
# はじめに
このパッケージは、Laravelアプリケーションに共有リンクを追加するプロセスを簡素化します。サービスが不足している場合は、プルリクエストを開いてください!
共有リンクは、ソーシャルメディアの基本URLと、ウェブサイトやアプリからコンテンツを共有するためのクエリパラメータを組み合わせたURLです。パラメータには通常、コンテンツのURLと事前設定されたメッセージが含まれます。例に示すように、これらのリンクを使用すると、ユーザーはTwitter、Facebook、Telegramなどのプラットフォームで投稿を簡単に共有できます。このオープンソースパッケージを使用して、Laravelのブレードコンポーネントシステムを介して共有リンクを迅速に作成できます。
<x-link-sharer service="twitter" text="Share me!" url="https://www.defectivecode.com" hashtags="awesome,links" class="p-4">    <!-- 共有ボタンの外観を制御するためのHTMLコードをここに記述 -->    <span class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Click me!</span></x-link-sharer>
composer require defectivecode/link-sharer
サービスプロバイダーは事前通知なしに共有リンクを更新することがあります。私たちはこれらの変更に対応するために最善を尽くしていますが、機能しないサービスに遭遇した場合は、問題を報告するかプルリクエストを提出してください。新しいサービスを追加するには、以下の貢献セクションを参照してください。
一部のサービスでは、コンポーネントに渡すことができる追加のパラメータを提供しています。これらは以下の表に記載されています。
| サービス | テキスト対応 | URL対応 | 備考 | 
|---|---|---|---|
| Blogger | ✔️ | ✔️ | t ブログ投稿のテキスト。 | 
| Diaspora | ✔️ | ✔️ | |
| Diigo | ✔️ | ✔️ | description 投稿に追加する説明。 | 
| Douban | ✔️ | ✔️ | comment 投稿に追加するコメント。 | 
| Evernote | ✔️ | ✔️ | |
| ❌ | ✔️ | ||
| ✔️ | ✔️ | quote 投稿に追加する引用。 | 
|
| Gmail | ✔️ | ✔️ | bcc BCCに送るメールアドレスのカンマ区切りリスト。 cc CCに送るメールアドレスのカンマ区切りリスト。 su メールの件名。 to 送信先のメールアドレスのカンマ区切りリスト。 | 
| HackNews | ✔️ | ✔️ | |
| Instapaper | ✔️ | ✔️ | description 投稿の説明。 | 
| LineMe | ❌️ | ✔️ | |
| ❌ | ✔️ | ||
| LiveJournal | ✔️ | ✔️ | |
| Meneame | ❌️ | ✔️ | |
| Okru | ❌️ | ✔️ | |
| Outlook | ✔️ | ✔️ | |
| ✔️ | ✔️ | media 投稿に表示する画像URL。 | 
|
| Plurk | ❌ ️ | ✔️ | |
| ✔️ | ✔️ | ||
| QZone | ✔️ | ✔️ | summary 投稿の要約。 | 
| ✔️ | ✔️ | ||
| Renren | ✔️ | ✔️ | description 投稿の説明。 srcUrl 投稿の元のURL。 | 
| Skype | ✔️ | ✔️ | |
| Telegram | ✔️ | ✔️ | |
| Threema | ❌ | ✔️ | id 投稿を送信する相手のID。 | 
| Tumblr | ✔️ | ✔️ | caption 投稿に追加するキャプション。 tags 投稿に適用するタグのカンマ区切りリスト。 | 
| ✔️ | ✔️ | hastags ツイートに適用するハッシュタグのカンマ区切りリスト。 via クレジットを与えるツイーター。 | 
|
| Viber | ✔️ | ✔️ | |
| VKontakte | ✔️ | ✔️ | description 投稿の説明。 image 投稿に表示する画像URL。 | 
| ✔️ | ✔️ | ||
| ✔️ | ✔️ | ||
| ❌ | ✔️ | ||
| YahooMail | ✔️ | ✔️ | 
サービスの追加は比較的簡単です。まず、src/Servicesフォルダ内に新しいサービスクラスを作成します。クラス名は追加するサービスにちなんで名付けます。システムはファクトリを通じてサービスを自動的に登録するため、手動での登録は不要です。
以下に示すGmailサービスは良い例です。
<?php namespace DefectiveCode\LinkSharer\Services; use DefectiveCode\LinkSharer\Traits\AppendsLinks; class Gmail extends Service{    use AppendsLinks;     protected string $baseUrl = 'https://mail.google.com/mail/u/0';     protected array $baseParameterMapping = [        'text' => 'body',    ];     protected array $additionalParameters = [        'bcc',        'cc',        'su',        'to',    ];     protected array $defaultParameters = [        'view' => 'cm',    ];}
baseUrlのみが必須であることに注意してください。baseParameterMapping、additionalParameters、およびdefaultParametersはオプションですが、機能を強化することができます。
$baseUrlサービスのURLはHTTPSで始まる必要はありません。例えば、Viberは
viber://forwardを使用します。
baseUrlプロパティはサービスの主要なURLを指定します。このURLは共有リンクを生成する際の基盤となり、クエリパラメータが追加されます。Gmailを例に取ると、その基本URLはhttps://mail.google.com/mail/u/0です。
$baseParameterMappingこのパッケージは、ほとんどのサービスプロバイダで一般的なtextとurlの2つの主要な属性を識別します。サービスが異なる命名規則を使用している場合にのみ、これらの属性を定義します。例えば、Gmailはtextの代わりにbodyを使用するため、この明示的なマッピングが必要です。Gmailを使用する場合、ブレードコンポーネントに渡されたtext属性は共有リンクのbodyクエリパラメータに変換されます。
$additionalParameters一部のサービスは、より具体的なクエリパラメータを受け入れます。Gmailを参考にすると、bcc、cc、su、およびtoをサポートしています。これらをadditionalParameters配列に定義します。ユーザーがこれらの属性をブレードコンポーネントに含めると、共有リンクに追加されます。これらのパラメータはサポートされているサービスの表にもリストされ、簡潔な説明が付けられていることを確認してください。
$defaultParameters特定のサービスは、共有リンクが機能するために特定のクエリパラメータを必要とします。例えば、Gmailはview=cmの含有を必要とします。このような必須属性はdefaultParameters配列に宣言されます。これらは常に共有リンクに追加され、省略することはできません。
prepareAttributes()共有リンクを生成する前に属性を操作するために、サービスにprepareAttributesメソッドを導入します。このメソッドは属性をgenerateLinkメソッドに渡す前にアクティブになり、カスタム属性の変更を可能にします。以下はAppendsLinksトレイトを使用したデモンストレーションです。
<?php namespace DefectiveCode\LinkSharer\Traits; trait AppendsLinks{    protected function prepareAttributes(): void    {        if (isset($this->attributes['text']) && isset($this->attributes['url'])) {            $this->attributes['text'] = $this->attributes['text'] . "\n" . $this->attributes['url'];            return;        }         if (isset($this->attributes['url'])) {            $this->attributes['text'] = $this->attributes['url'];        }    }}
サービスに渡された属性は$attributes配列を通じてアクセス可能です。示された例では:
textとurlの両方の属性が存在する場合、urlはtext属性に追加されます。url属性のみが存在する場合、text属性はurlの値を引き継ぎます。# サポートガイドライン オープンソースパッケージを選んでいただきありがとうございます!このサポートガイドラインを一読いただければ、プロジェクトを最大限に活用するのに役立ちます。 ## コミュニティ主導のサポート 私たちのオープンソースプロジェクトは素晴らしいコミュニティによって支えられています。質問や支援が必要な場合は、StackOverflowやその他のオンラインリソースが最適です。 ## バグと機能の優先順位付け オープンソースプロジェクトを管理する現実として、報告されたすべてのバグや機能リクエストに即座に対応することはできません。以下の順序で問題を優先します: ### 1. 有料製品に影響を与えるバグ 有料製品に影響を与えるバグは常に最優先事項です。場合によっては、私たちに直接影響を与えるバグのみを修正することがあります。 ### 2. コミュニティのプルリクエスト バグを特定し、解決策を見つけた場合は、プルリクエストを提出してください。私たちの製品に影響を与える問題の次に、これらのコミュニティ主導の修正に最優先で対応します。レビューと承認が完了次第、あなたの解決策をマージし、貢献をクレジットします。 ### 3. 金銭的サポート 上記のカテゴリに該当しない問題については、その解決に資金を提供することができます。各オープンイシューには注文フォームがリンクされており、金銭的に貢献することができます。提供された資金額に基づいてこれらの問題を優先します。 ### コミュニティの貢献 オープンソースはコミュニティが活発であるときに繁栄します。バグを修正しなくても、コードの改善、ドキュメントの更新、チュートリアルの作成、またはコミュニティチャネルで他の人を支援することで貢献を検討してください。オープンソースの作業をサポートするために、コミュニティ全体としての貢献を強く奨励します。 _繰り返しになりますが、DefectiveCodeは有料製品に影響を与えるバグ、コミュニティのプルリクエスト、および問題に対する金銭的サポートに基づいてバグを優先します。_
# ライセンス - MITライセンス Copyright © Defective Code, LLC. All rights reserved 本ソフトウェアおよび関連するドキュメントファイル(以下「ソフトウェア」)のコピーを取得したすべての人に対し、無償で、以下の条件に従い、ソフトウェアを制限なく使用、コピー、改変、統合、公開、配布、サブライセンス、および/または販売する権利を許可します。また、ソフトウェアが提供された人々にこれを行うことを許可します。 **上記の著作権表示およびこの許可表示は、ソフトウェアのすべてのコピーまたは重要な部分に含まれるものとします。** ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定の目的への適合性、および非侵害についての保証を含むがこれに限定されない、いかなる種類の保証もありません。著者または著作権者は、契約行為、不法行為、またはその他の行為に起因または関連して生じるいかなる請求、損害、またはその他の責任についても責任を負いません。