English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
介绍
此软件包简化了在您的 Laravel 应用程序中添加分享链接的过程。如果您发现我们缺少某个服务,请随时提交拉取请求!
分享链接是一个 URL,它将社交媒体基础 URL 与用于分享您网站或应用内容的查询参数相结合。参数通常包括内容 URL 和预设消息。如示例所示,这些链接使用户能够轻松地在 Twitter、Facebook 和 Telegram 等平台上分享帖子。使用这个开源包,您可以通过 Laravel 的 Blade 组件系统快速创建分享链接。
示例
<x-link-sharer service="twitter" text="分享我!" 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">点击我!</span></x-link-sharer>
安装
- 首先通过运行以下 Composer 命令安装 PHP 包:
composer require defectivecode/link-sharer
- 就这样!我们的包将自动使用 Laravel 的包发现功能进行安装。
服务
服务提供商偶尔会在未提前通知的情况下更新他们的分享链接。我们努力保持对这些更改的更新。但是,如果您遇到非功能性服务,请打开问题或提交拉取请求。有关添加新服务,请参阅下面的 贡献 部分。
一些服务提供额外的参数,可传递给组件。以下表格中有相关文档。
| 服务 | 支持文本 | 支持 URL | 备注 |
|---|---|---|---|
| Blogger | ✔️ | ✔️ | t 博客帖子的文本。 |
| Diaspora | ✔️ | ✔️ | |
| Diigo | ✔️ | ✔️ | description 要添加到帖子的描述。 |
| Douban | ✔️ | ✔️ | comment 要添加到帖子的评论。 |
| Evernote | ✔️ | ✔️ | |
| ❌ | ✔️ | ||
| ✔️ | ✔️ | quote 要添加到帖子的引用。 |
|
| Gmail | ✔️ | ✔️ | bcc 用于密件抄送的电子邮件地址列表,以逗号分隔。 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 要应用于帖子的标签列表,以逗号分隔。 |
| ✔️ | ✔️ | hashtags 要应用于推文的标签列表,以逗号分隔。 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,因为它们在大多数服务提供商中普遍存在。只有在服务使用不同命名约定时才定义这些属性。例如,Gmail 使用 body 替代 text,因此需要此显式映射。在使用 Gmail 时,传递给 Blade 组件的任何 text 属性都将转换为分享链接中的 body 查询参数。
$additionalParameters
一些服务接受更具体的查询参数。以 Gmail 为参考,它支持 bcc、cc、su 和 to。在 additionalParameters 数组中定义这些参数。当用户在 Blade 组件中包含这些属性时,它们会被添加到分享链接中。确保这些参数也在 已支持服务 表中列表,并附有简要说明。
$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 许可
版权所有 © Defective Code, LLC。保留所有权利
特此免费授权任何获得此软件及相关文档文件(“软件”)副本的人,允许在软件中自由处理,包括不限于使用、复制、修改、合并、发布、分发、再授权和/或销售软件副本的权利,并允许被提供软件的人这样做,前提是满足以下条件:
上述版权声明和本许可声明应包括在软件的所有副本或重要部分中。
软件按“原样”提供,不提供任何种类的保证,明示或暗示,包括但不限于对适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权持有者均不对因软件或软件的使用或其他交易而引起的任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权或其他方面。