Skip to main content
generateJWT 端點可為單一 User Profile 產生一個社群網路連結 URL。 詳情請參閱 Business Plan 與 Launch Plan 的 API 整合
generateJWT 已不再是建立連結 URL 的唯一方式。 它仍然可用,本頁也仍然描述它,但新的整合請使用 建立 Link Session:不需要任何 private key,並且你可以 查看連結是否已被開啟,或在過期前 撤銷它兩個端點使用同一個驗證器,因此本頁關於 expiresInallowedSocialinstagramLinkMethodredirectlogout 和 Connect Accounts 電子郵件的所有說明對兩者都適用。generateJWT 保留了三項新 端點會拒絕的寬鬆處理:allowedSocial 中無法識別的網路、只提供 X 憑證的一半,以及非字串的 redirect

傳送連結 URL

連結 URL 會讓你的使用者登入到他們的 profile,因此請像對待密碼一樣對待它。透過你信任的管道傳送,不要 記錄到日誌中,也不要轉交給第三方。它在整個有效期內都可以使用,因此重新載入或重試 OAuth 都沒問題, 但每個連結只發給一位使用者,並為每個人單獨建立連結。

切換 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;該步驟已不再需要。
連結 URL 的有效期為 5 分鐘。5 分鐘後你必須產生新的連結 URL。 其他選項請參閱 Max Pack 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 按鈕即可。 範例設定仍會預先填入 privateKeydomainprivateKey 會被忽略;除非你的帳戶擁有多個連結網域,否則可以清空 domain 你也可以從 Postman 產生程式碼

Instagram 連結方式

Instagram 帳號可以透過兩種方式連結:直接使用 Instagram Login,或透過已連結的 Facebook 粉絲專頁。 當使用者在社群連結頁面點擊 Instagram 按鈕時,會啟動哪一種流程,通常由控制台中的帳號層級 Instagram Login 設定控制。 generateJWT 端點instagramLinkMethod body 參數允許你針對單一連結 URL 覆寫該設定: 舉例來說,若你的帳號預設是使用 Facebook 粉絲專頁連結,以下設定會強制此連結工作階段改用直接的 Instagram Login:
Instagram Link Method
產生的連結 URL 會包含此覆寫設定,且點擊連結頁面上的 Instagram 按鈕後,在整個工作階段(包含跨越 Instagram/Facebook 授權轉址過程)都會使用所要求的流程。 須注意的事項:
  • 覆寫僅套用於從回傳 URL 開啟的連結頁面,不會改變你的帳號層級 Instagram Login 設定,也不會影響其他連結工作階段。
  • 若省略 instagramLinkMethod,連結頁面會沿用你的帳號層級設定,與之前一致。
  • 若傳入無效值,將回傳 400 錯誤,並列出有效值(instagramfacebook)。
  • 在選擇覆寫之前,請先參閱兩種流程的功能差異——部分 Instagram 功能,例如 hashtag 搜尋與 collaborations(協作),僅支援 Facebook 粉絲專頁驗證。

JWT Expires In

如果你希望 連結的逾時時間比預設的 5 分鐘更長,請加入 expiresIn 欄位。 例如,以下 JSON 會將連結 URL 的有效期設定為 30 分鐘:
JWT Expires In
這樣你就可以將該連結以電子郵件寄送給使用者,而不必讓他們前往你的應用程式或平台。 常見用例是:當使用者需要重新連結社群帳號時,你可以將 JWT 連結透過電子郵件寄給他,讓他直接重新連結社群帳號,而不必再前往你的平台。
請務必與你的資安團隊確認你的業務希望 JWT 保持有效多長時間。 較長的有效時間會增加未經授權的第三方存取該連結的風險。

整合方式

Bubble.io

如果你是 Bubble 使用者,請參閱 Bubble.io 章節中的 在 Bubble 中產生連結 URL 說明:

Bubble linking URL

行動端 JWT

下列 Swift、Flutter 與 React Native 行動端程式碼範例示範如何在 iOS 裝置上開啟社群連結頁面。 請將 jwtURL 字串變數替換為 /generateJWT 端點的回傳結果。

Swift(iOS)

在 Swift 中,請使用 UIViewControllerSFSafariViewControllerDelegate。 我們不建議使用 WebView,因為 Facebook 與 Google 等部分社群網路會封鎖此類驗證。

Flutter(Dart)

在 Flutter(Dart)中,並沒有與 UIViewControllerSFSafariViewController 直接對應的元件。 不過你可以使用 url_launcher 套件開啟網頁 URL 來達成類似的功能。

React Native

React Native 同樣沒有與 SFSafariViewController 直接對應的元件,但你可以使用 expo-web-browser 提供的 WebBrowser API 達成類似效果——它會在一個與系統瀏覽器共用 Cookie 的模式化瀏覽器視窗中開啟 URL。你也可以使用 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>