Skip to main content
generateJWT エンドポイント は、単一の User Profile に対してソーシャルネットワーク連携用の URL を生成します。 詳しくは Business Plan and Launch Plan API integration を参照してください。
リンク用 URL を作成する手段は generateJWT だけではなくなりました。 引き続き動作し、このページでも 説明していますが、新しい実装では Link Session の作成を使用してください。秘密鍵は不要で、 リンクが開かれたかどうかの確認や、期限切れ前の 失効も行えます。両方のエンドポイントは同じバリデータを使うため、このページの expiresInallowedSocialinstagramLinkMethodredirectlogout、Connect Accounts メールに関する記述はどちらにも 当てはまります。generateJWT には、新しいエンドポイントが拒否する 3 つの緩和が残っています: 未知の allowedSocial ネットワーク、X 認証情報の片方のみ、文字列でない redirect です。

リンク用 URL の送信

リンク用 URL はユーザーをそのプロファイルにサインインさせるため、パスワードと同様に扱ってください。 信頼できる経路で送り、ログに残さず、第三者に渡さないでください。有効期間中は使い続けられるので リロードや OAuth の再試行は問題ありませんが、各リンクは 1 人のユーザーにのみ送り、人ごとに個別の リンクを作成してください。

プロファイルの切り替え

異なるプロファイルセッション間で切り替える(例えば複数プロファイルでテストする)には、まず現在のプロファイルをログアウトする必要があります。適切にプロファイル切り替えを扱う方法については、Automatic Logout of a Profile Session を参照してください。

Profile Key

profileKey は、リンク用 URL がどの User Profile のものかを示します。Ayrshare の開発者ダッシュボードでそのプロファイルに切り替えると確認できます。
Private Key は使用されなくなりました。リンク用 URL は署名されないため、ファイルから読み込んだりコードに貼り付けたりするものはありません。privateKey は引き続き受け付けられて無視されるので既存の連携はそのまま動作し、Integration Package の private.key ファイルは使わないままで構いません。

リンク用 URL の生成

リンク用 URL を作成する方法を紹介する 1 分の動画です。Link Sessions より前に収録されたため、Private Key を送信する様子が残っていますが、その手順はもう必要ありません。
リンク用 URL は 5 分間 有効です。5 分経過後は、新しい リンク用 URL を生成する必要があります。 追加オプションについては、Max Pack expiresIn を参照してください。

リンク用 URL を開く

リンク用 URL は、新しいブラウザタブ、ブラウザウィンドウ、または iOS 上の View Controller で開きます。 新しいウィンドウやタブの閉じる、またはリダイレクトする動作 を制御することができます。
ソーシャルネットワークは、URL を iFrame で開いたり、承認済みのパートナー オリジンドメイン profile.ayrshare.com を 難読化することを許可していません。

URL の検証

verify: true は使用されなくなりました。受け付けられますが無視されます。 検証すべき署名付きトークンはありません。返される token は、ユーザーが URL を開いたときにリンクページ側で確認されます。このオプションは以前、URL を送る前に壊れた鍵を検出するため、Private Key で JWT を再解析していました。鍵がフローから無くなったため、この失敗は起こりません。

Postman でのテスト

まず Postman で リンク用 URL の作成をテストすることを 推奨します。 ダッシュボードの Primary Profile の API Key ページから入手できる Integration Package には、サンプルの Postman 設定 JSON ファイルが含まれています。 設定ファイルを Postman にインポートし、profileKeybody フィールドにテストしたいプロファイル(Ayrshare 開発者ダッシュボードで切り替えることで取得できます)の Profile Key を入力し、青い Send ボタンをクリックするだけです。 サンプル設定には現在も privateKeydomain が事前入力されています。privateKey は無視され、アカウントにリンク用ドメインが複数ない限り domain は空にして構いません。 Postman からコードを生成することもできます。

Instagram のリンク方式

Instagram アカウントは 2 つの方法 でリンクできます: Instagram Login を用いて直接リンクする方法と、接続された Facebook Page を経由する方法です。 ユーザーがソーシャルリンクページで Instagram ボタンをクリックしたときにどちらのフローが開始されるかは、通常、ダッシュボードのアカウント全体の Instagram Login 設定によって制御されます。 generateJWT エンドポイントinstagramLinkMethod ボディパラメータを使用すると、単一のリンク URL に対してその設定を上書きできます: 例えば、アカウントのデフォルトが Facebook Page リンクの場合、このリンクセッションだけ強制的に Instagram Login を直接使うようにするには次のようにします:
Instagram Link Method
生成された リンク用 URL にはこの上書きが含まれ、リンクページで Instagram ボタンをクリックすると、そのセッションの期間中(Instagram/Facebook の認可リダイレクトを跨いでも)要求されたフローが開始されます。 いくつかの注意点:
  • この上書きは、返された URL から開かれるリンクページにのみ適用されます。アカウント全体の Instagram Login 設定を変更したり、他のリンクセッションに影響を与えたりしません。
  • instagramLinkMethod が省略された場合、リンクページはこれまでどおりアカウント全体の設定を使用します。
  • 無効な値が送信されると、有効な値(instagramfacebook)を列挙した 400 エラーが返されます。
  • 上書きを選択する前に、2 つのフロー間の機能の違い を確認してください。ハッシュタグ検索やコラボレーションなど、一部の Instagram 機能は Facebook Page 認証のみで利用可能です。

JWT の有効期限(Expires In)

デフォルトの 5 分より長い リンクのタイムアウトが必要な場合は、expiresIn フィールドを含めます。 例えば、リンク用 URL を 30 分間有効にするには、以下の JSON を送信します:
JWT Expires In
これにより、ユーザーがアプリやプラットフォームにアクセスする必要なく、リンクをメール送信 することができます。 一般的なユースケースは、ユーザーがソーシャルアカウントを再接続する必要がある場合に、プラットフォームに移動せずに JWT リンクをメールで送信して、直接ソーシャルアカウントを再リンクできるようにすることです。
JWT を有効に保つ期間について、ビジネスのセキュリティチームと必ず確認してください。 有効期限を長くすると、権限のない者がリンクにアクセスするリスクが高まります。

統合

Bubble.io

Bubble ユーザーの場合は、Bubble.io セクションの Bubble でリンク用 URL を生成する を参照してください:

Bubble linking URL

モバイル JWT

以下の Swift、Flutter、React Native のモバイルコード例 は、iOS デバイスでソーシャルリンクページを起動する方法を示しています。 jwtURL の String 変数を /generateJWT エンドポイント からの戻り値に置き換えてください。

Swift (iOS)

Swift では、UIViewControllerSFSafariViewControllerDelegate を使用してください。 Facebook や Google などの一部のソーシャルネットワークが認証をブロックするため、WebView の使用は推奨しません。

Flutter (Dart)

Flutter (Dart) には、UIViewControllerSFSafariViewController に直接相当するものはありません。 ただし、url_launcher パッケージを使用して Web URL を開くことで、同様の機能を実現できます。

React Native

React Native にも SFSafariViewController に直接相当するものはありませんが、expo-web-browser によって提供される WebBrowser API を使用して、システムブラウザとクッキーを共有するモーダルブラウザウィンドウで URL を開くことで、同様の結果を得ることができます。あるいは、React Native 標準の Linking 関数を使用して Safari を開くこともできます: await Linking.canOpenURL(jwtURL);

モバイルコード例

アカウント連携メール(Connect Accounts Email)

より長い有効期限オプションと組み合わせて、Ayrshare からユーザーにソーシャル連携ページへのリンクを自動的にメール送信することもできます。

Connect Accounts JSON

例えば以下の JSON を使用すると、会社名 ACME、連絡先メール support@mycompany.com、および利用規約とプライバシーポリシーへのリンクとともに john@user.com にメールが送信されます:
Example Contact Email Request
メールと有効期限が設定された場合、レスポンスに以下が含まれます:
Example Contact Email Response

Connect Accounts メールの例

ソーシャル連携ページを開く Connect Account リンクを含むメールの例です: メールは以下のアドレスから送信されます: Social Connect Hub <connect@socialconnecthub.com>