generateJWT 已不再是创建链接 URL 的唯一方式。 它仍然可用,本页也仍然描述它,但新的集成请使用
创建 Link Session:无需任何 private key,并且你可以
查看链接是否已被打开,或在过期前
吊销它。两个端点使用同一个校验器,因此本页关于 expiresIn、allowedSocial、instagramLinkMethod、
redirect、logout 和 Connect Accounts 邮件的所有说明对两者都适用。generateJWT 保留了三项新端点
会拒绝的宽松处理:allowedSocial 中无法识别的网络、只提供 X 凭据的一半、以及非字符串的 redirect。发送链接 URL
切换 Profile
要在不同的 profile 会话之间切换(例如在使用多个 profile 进行测试时),你需要先将当前 profile 登出。请参阅自动登出 Profile 会话以了解如何正确处理 profile 切换。Profile Key
profileKey 指明链接 URL 对应哪个 User Profile。在 Ayrshare 开发者控制台切换到该 profile 即可找到它。
Private Key 已不再使用。链接 URL 不再签名,因此无需从文件读取任何内容,也无需粘贴到代码里。
privateKey 仍会被接受并忽略,所以现有集成继续工作,Integration Package 中的 private.key 文件可以不再使用。生成链接 URL
1 分钟视频,演示如何创建链接 URL。该视频录制于 Link Sessions 之前,因此仍然演示了发送 Private Key;该步骤已不再需要。expiresIn。
打开链接 URL
请在新的浏览器标签页、新的浏览器窗口或 iOS 上的 View Controller 中打开链接 URL。 你可以控制新窗口或标签页的关闭或重定向。社交网络不允许在 iFrame 中打开该 URL,也不允许对已获批准的合作伙伴来源域名 profile.ayrshare.com 进行混淆处理。
验证 URL
verify: true 已不再使用。它会被接受并忽略。
没有需要验证的签名 token:返回的 token 会在你的用户打开该 URL 时由链接页面校验。此选项过去会用你的 Private Key 重新解析 JWT,以便在你把 URL 发出去之前发现损坏的密钥。由于流程中已不再有密钥,这种失败不会再发生。
在 Postman 中测试
建议首先在 Postman 中测试链接 URL 的生成。 在控制台 Primary Profile 的 API Key 页面可获取的 Integration Package 中,包含一个示例 Postman 配置 JSON 文件。 只需将该配置文件导入 Postman,在profileKey body 字段中填入你的 Profile Key(可在 Ayrshare 开发者控制台中切换到你要测试的 profile 后获取),然后点击蓝色的 Send 按钮即可。
示例配置仍会预填 privateKey 和 domain。privateKey 会被忽略;除非你的账户拥有多个链接域名,否则可以清空 domain。
你也可以从 Postman 生成代码。
Instagram 关联方式
Instagram 账户可以通过两种方式进行关联:直接使用 Instagram Login,或通过一个已关联的 Facebook Page。 当用户在社交关联页面上点击 Instagram 按钮时,会启动哪种流程,通常由控制台中账户级别的 Instagram Login 设置决定。 generateJWT 端点的instagramLinkMethod body 参数允许你为单个关联 URL 覆盖该设置:
例如,如果你账户的默认设置为使用 Facebook Page 关联,以下示例将仅在本次关联会话中强制使用直接 Instagram Login:
Instagram Link Method
- 该覆盖仅对由所返回 URL 打开的关联页面生效,并不会更改账户级别的 Instagram Login 设置,也不会影响其他关联会话。
- 如果省略
instagramLinkMethod,关联页面将使用账户级别的设置,与以往行为完全一致。 - 如果传入非法值,将返回
400错误,并列出合法值(instagram、facebook)。 - 在选择覆盖之前,请查看两种流程之间的功能差异——某些 Instagram 功能(例如 hashtag 搜索和合作发布)仅在使用 Facebook Page 认证时可用。
JWT Expires In
如果你希望 链接的超时时间比默认的 5 分钟更长,请加入expiresIn 字段。
例如,发送以下 JSON 可将链接 URL 的有效期设置为 30 分钟:
JWT Expires In
集成
Bubble.io
如果你是 Bubble 用户,请参阅 Bubble.io 章节中的 在 Bubble 中生成链接 URL:Bubble linking URL
移动端 JWT
以下 Swift、Flutter 和 React Native 移动端代码示例展示了如何在 iOS 设备上启动社交关联页面。 请将jwtURL 字符串变量替换为 /generateJWT 端点返回的值。
Swift (iOS)
在 Swift 中,使用UIViewController 和 SFSafariViewControllerDelegate。
不建议使用 WebView,因为某些社交网络(如 Facebook 和 Google)会阻止认证。
Flutter (Dart)
在 Flutter (Dart) 中没有直接等同于UIViewController 或 SFSafariViewController 的组件。
不过,你可以使用 url_launcher 包打开 Web URL,以实现类似功能。
React Native
React Native 同样没有直接对应SFSafariViewController 的组件,但你可以使用 expo-web-browser 提供的 WebBrowser API 达到类似效果,该 API 会在一个模态浏览器窗口中打开 URL,并与系统浏览器共享 cookies。此外,你也可以使用内置的 React Native Linking 函数打开 Safari:await Linking.canOpenURL(jwtURL);
移动端代码示例
Connect Accounts 邮件
与更长的过期时间选项配合使用时,你还可以让 Ayrshare 自动向你的用户发送一封包含社交关联页面链接的电子邮件。Connect Accounts JSON
例如,以下 JSON 会向john@user.com 发送一封邮件,其中公司名称为 ACME,联系邮箱为 support@mycompany.com,并附带条款和隐私政策链接:
Example Contact Email Request
Example Contact Email Response
Connect Accounts 邮件示例
以下是一封带有 Connect Account 链接的邮件示例,点击后将打开社交关联页面: 邮件将从以下地址发出:Social Connect Hub <connect@socialconnecthub.com>