alwaysblank/extrovert

简单的社交媒体分享链接。

1.2.0 2020-07-29 18:13 UTC

This package is auto-updated.

Last update: 2024-08-29 04:49:11 UTC


README

快速生成简单的社交媒体分享URL。

Build Status

用法

本项目仅生成URL(可选地,以及包裹它们的链接元素);它不实现任何更复杂的分享活动,也永远不会。它不试图成为一个具有深度集成、互动和分享计数的社交媒体中心,因此它将仅支持允许通过简单链接机制进行分享的服务。

URL

要使用它,只需调用您想要的网络上的 url() 静态方法,传入任何相关参数。例如,要生成一个分享到Facebook的链接,您将这样做

AlwaysBlank\Extrovert\Network\Facebook::url('https://www.alwaysblank.org');

某些网络也支持其他信息,例如名称或描述。您可以按顺序传递它们,或作为数组的一部分。以下都是等效的

AlwaysBlank\Extrovert\Network\ExampleNetwork::url('https://www.alwaysblank.org', "Extrovert Can Help", "A new tool to generate simple share URLs.");

AlwaysBlank\Extrovert\Network\ExampleNetwork::url([
  'https://www.alwaysblank.org', 
  "Extrovert Can Help", 
  "A new tool to generate simple share URLs."
]);

AlwaysBlank\Extrovert\Network\ExampleNetwork::url([
  'uri' => 'https://www.alwaysblank.org', 
  'name' => "Extrovert Can Help", 
  'description' => "A new tool to generate simple share URLs."
]);

所有内容都将自动进行URL编码——请不要传递已编码的字符串。

链接

您还可以生成一个简单的链接元素,具有一些 安全功能。语法与 url() 非常相似,但使用 link() 时,您必须将URL参数作为数组传递。

AlwaysBlank\Extrovert\Network\ExampleNetwork::link(
  ['https://www.alwaysblank.org', "Extrovert Can Help", "A new tool to generate simple share URLs."],
  'Share on Network',
  ['class' => 'link']
);

支持的网络

  • Facebook - 仅支持 url 参数。
  • LinkedIn - 支持的 url 参数。
  • Twitter - 支持 urlname 参数。
  • Pinterest - 支持 urldescriptionmedia 参数,但请记住,它们必须作为键数组传递,并且您必须传递 urlmedia 值——Pinterest 否则无法理解它,您将得到奇怪的结果。
  • Email - 支持 urlnamedescription 参数,但行为略有不同。它期望 description 包含一个 %s,它将被 url 替换。如果没有提供,它还将尝试生成合理的默认值 namedescription(电子邮件的主题和正文)。
  • 您喜欢的服务!请提交 问题 或,更好的是,一个 pull request!但是请记住项目的限制和意图。

注意

Extrovert 非常注重类型,请确保传递它喜欢的参数:否则它将非常无礼地开始抛出异常。

如果您传递了正确类型的参数,但其他方面不正确,它将非常礼貌地只返回一个空字符串。

许多这些服务将从您告诉它们链接到的URL中提取信息以填充丰富链接。因此,确保该URL上的元数据(和/或OpenGraph数据)正确实现是很明智的。这也意味着,如果尝试链接到无法访问的URL(即 development-site.local),它们将抛出错误;