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的blade组件系统快速创建共享链接。
<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">点击我!</span></x-link-sharer>
composer require defectivecode/link-sharer
服务提供商有时会在没有事先通知的情况下更新其共享链接。我们会尽力跟进这些变化。但是,如果您遇到无法使用的服务,请提出问题或提交拉取请求。要添加新的服务,请参阅下面的贡献部分。
一些服务提供了可以传递给组件的额外参数。这些参数在下表中有所说明。
服务 | 支持文本 | 支持URL | 备注 |
---|---|---|---|
博客园 | ✔️ | ✔️ | t 博客文章的文本 |
Diaspora | ✔️ | ✔️ | |
Diigo | ✔️ | ✔️ | description 要添加到帖子的描述 |
豆瓣 | ✔️ | ✔️ | comment 要添加到帖子的评论 |
印象笔记 | ✔️ | ✔️ | |
❌ | ✔️ | ||
✔️ | ✔️ | quote 要添加到帖子的引用 |
|
Gmail | ✔️ | ✔️ | bcc 用逗号分隔的电子邮件地址列表,用于密送。cc 用逗号分隔的电子邮件地址列表,用于抄送。su 电子邮件的主题。to 用逗号分隔的电子邮件地址列表,用于发送。 |
HackNews | ✔️ | ✔️ | |
Instapaper | ✔️ | ✔️ | description 帖子的描述 |
LineMe | ❌️ | ✔️ | |
❌ | ✔️ | ||
LiveJournal | ✔️ | ✔️ | |
Meneame | ❌️ | ✔️ | |
Okru | ❌️ | ✔️ | |
Outlook | ✔️ | ✔️ | |
✔️ | ✔️ | media 要在帖子上显示的图像URL |
|
Plurk | ❌ ️ | ✔️ | |
✔️ | ✔️ | ||
QZone | ✔️ | ✔️ | summary 帖子的摘要 |
✔️ | ✔️ | ||
人人网 | ✔️ | ✔️ | 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是基础的,查询参数会附加到该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组件中包含这些属性时,它们会被添加到共享链接中。确保这些参数也在supported services表中列出,并附有简明的描述。
$defaultParameters
某些服务要求共享链接包含特定的查询参数才能正常工作。例如,Gmail需要包含view=cm
。这些强制属性在defaultParameters
数组中声明。它们始终会附加到共享链接中,不能省略。
prepareAttributes()
在生成共享链接之前对属性进行操作,可以在服务中引入一个prepareAttributes
方法。该方法在将属性传递给generateLink
方法之前激活,允许进行自定义属性修改。下面是使用AppendsLinks
trait的示例。
<?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和其他在线资源是您最好的选择。
管理开源项目的现实意味着我们无法立即解决每个报告的缺陷或功能请求。我们按照以下顺序优先处理问题:
影响我们付费产品的缺陷始终是我们的首要任务。在某些情况下,我们可能只解决直接影响我们的缺陷。
如果您发现了一个缺陷并且有解决方案,请提交一个拉取请求。在解决影响我们产品的问题之后,我们将优先处理这些社区驱动的修复。一旦审核并批准,我们将合并您的解决方案并给予您的贡献认可。
对于不属于上述类别的问题,您可以选择为其解决提供资金支持。每个开放的问题都链接到一个订单表单,您可以在其中进行财务贡献。我们根据提供的资金金额优先处理这些问题。
开源在其社区活跃时才能繁荣。即使您不修复缺陷,也可以通过代码改进、文档更新、教程或在社区渠道中帮助他人来做出贡献。我们强烈鼓励每个人作为一个社区来支持开源工作。
再次强调,DefectiveCode将根据缺陷对我们付费产品的影响、社区贡献的拉取请求以及收到的财务支持来优先处理缺陷。
版权所有 © Defective Code, LLC。保留所有权利。
特此免费授予任何获得本软件及相关文档文件(以下简称“软件”)副本的人,无偿使用本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许获得本软件的人这样做,但须遵守以下条件:
在所有副本或实质部分的软件中必须包含上述版权声明和本许可声明。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。无论是在合同、侵权行为或其他情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,与本软件或使用或其他方式有关。