メインコンテンツへスキップ
generateJWT エンドポイント は、単一の User Profile に対してソーシャルネットワーク連携用の URL を生成します。 詳しくは Business Plan and Launch Plan API integration を参照してください。

プロファイルの切り替え

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

Private Key と Profile Key

Private Key の入手先

Private Key ファイル(private.key)とサンプル Postman JSON ファイルは、オンボーディング時に受け取る Integration Package に含まれています。 Integration Package は、Ayrshare 開発者ダッシュボードの API ページ -> Integration Package からも取得できます。

Private Key の使用方法

Private Key の private.key はファイルから読み取り、privateKey フィールドに文字列として送信することをお勧めします。これにより、改行を含むすべての文字を保持できます。 Private Key は正確でなければならず、改行を含むすべての文字を保持する必要があります。 コードにキーを直接貼り付ける場合は、改行を手動で \n 文字に置き換えるか、文字列を URL エンコードする必要があるかもしれません。 コードにキーを直接貼り付けると、しばしば問題が発生します。

JSON Web Token を生成する

JSON Web Token (JWT) を生成する方法を説明する 1 分の動画:
JWT URL は 5 分間 有効です。5 分経過後は、新しい JWT URL を生成する必要があります。 追加オプションについては、Max Pack expiresIn を参照してください。

JWT URL を開く

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

JWT URL を検証する

generateJWT エンドポイントは、デフォルトでは返された JWT URL を検証しません。 例えば、破損した Private Key が generateJWT に渡されても URL は返され、その URL は 401 エラーになります。 generateJWT のボディパラメータに verify: true を含めることで、返された JWT URL を検証できます。JWT URL を検証できない場合は、エラーが返されます。例えば、Private Key の文字が 1 文字削除されていた場合、以下が返されます:
JWT Error
検証には追加の処理時間がかかるため、verify: true は本番以外の環境でのみ使用することを推奨します。

Postman でのテスト

まず Postman で JWT URL の作成をテストすることを 推奨します。 ダッシュボードの Primary Profile API Key ページにある Integration Package には、JWT URL 作成を検証するために必要なすべてが含まれた Postman 設定 JSON のサンプルファイルが含まれています。 設定ファイルを Postman にインポートし、profileKeybody フィールドにテストしたいプロファイル(Ayrshare 開発者ダッシュボードで切り替えることで取得できます)の Profile Key を入力し、青い Send ボタンをクリックするだけです。 その他の必須フィールドはすでにすべて入力済みです。 Postman からコードを生成 することも、ディレクトリやデータベースからキーファイルを読み取ることもできます。

Instagram のリンク方式

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

JWT の有効期限(Expires In)

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

統合

Bubble.io JWT

Bubble ユーザーの場合は、Bubble.io セクションの Generate JWT Token を参照してください:

Bubble Generate JWT

モバイル 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

JWT Connect Accounts メールの例

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