リンク用 URL を作成する手段は
generateJWT だけではなくなりました。 引き続き動作し、このページでも
説明していますが、新しい実装では
Link Session の作成を使用してください。秘密鍵は不要で、
リンクが開かれたかどうかの確認や、期限切れ前の
失効も行えます。両方のエンドポイントは同じバリデータを使うため、このページの expiresIn、allowedSocial、
instagramLinkMethod、redirect、logout、Connect Accounts メールに関する記述はどちらにも
当てはまります。generateJWT には、新しいエンドポイントが拒否する 3 つの緩和が残っています:
未知の allowedSocial ネットワーク、X 認証情報の片方のみ、文字列でない redirect です。リンク用 URL の送信
プロファイルの切り替え
異なるプロファイルセッション間で切り替える(例えば複数プロファイルでテストする)には、まず現在のプロファイルをログアウトする必要があります。適切にプロファイル切り替えを扱う方法については、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 を送信する様子が残っていますが、その手順はもう必要ありません。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 にインポートし、profileKey の body フィールドにテストしたいプロファイル(Ayrshare 開発者ダッシュボードで切り替えることで取得できます)の Profile Key を入力し、青い Send ボタンをクリックするだけです。
サンプル設定には現在も privateKey と domain が事前入力されています。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 Login 設定を変更したり、他のリンクセッションに影響を与えたりしません。
instagramLinkMethodが省略された場合、リンクページはこれまでどおりアカウント全体の設定を使用します。- 無効な値が送信されると、有効な値(
instagram、facebook)を列挙した400エラーが返されます。 - 上書きを選択する前に、2 つのフロー間の機能の違い を確認してください。ハッシュタグ検索やコラボレーションなど、一部の Instagram 機能は Facebook Page 認証のみで利用可能です。
JWT の有効期限(Expires In)
デフォルトの 5 分より長い リンクのタイムアウトが必要な場合は、expiresIn フィールドを含めます。
例えば、リンク用 URL を 30 分間有効にするには、以下の JSON を送信します:
JWT Expires In
統合
Bubble.io
Bubble ユーザーの場合は、Bubble.io セクションの Bubble でリンク用 URL を生成する を参照してください:Bubble linking URL
モバイル JWT
以下の Swift、Flutter、React Native のモバイルコード例 は、iOS デバイスでソーシャルリンクページを起動する方法を示しています。jwtURL の String 変数を /generateJWT エンドポイント からの戻り値に置き換えてください。
Swift (iOS)
Swift では、UIViewController と SFSafariViewControllerDelegate を使用してください。
Facebook や Google などの一部のソーシャルネットワークが認証をブロックするため、WebView の使用は推奨しません。
Flutter (Dart)
Flutter (Dart) には、UIViewController や SFSafariViewController に直接相当するものはありません。
ただし、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>