Profile-Key から
Link Session の作成で作成します。お客様側で署名するものはなく、
フローに秘密鍵は登場しません。
3 つの連携方法
形は 3 つありますが、最初の 2 つは同じ統合です。フローごとに選択してください — 排他的なものでは なく、オンボーディングにはホスト型リンクページを、その後のアプリ内ではウィジェットを使う統合も 多数あります。ウィジェットの 2 つの行は 2 つの統合ではなく、1 つの統合です。1 回の
init で両方が使えます:
当社のボタンを置きたい場所にフレームをマウントし、それ以外の場所では独自のボタンから popup() を
呼び出します。両者は 1 つのセッションを共有し、同じハンドラーに結果を報告します。ダイレクトモード(Direct Mode)は、当社のスクリプトなしの
同じポップアップです — 厳格な Content-Security-Policy を持つページ、サーバーレンダリングされる
ページ、ネイティブアプリ向けで、この場合はポップアップを自分で開いて監視します。迷ったら? ホスト型リンクページから始めてください。Max Pack も追加パラメータも不要で、動くものに
到達する最速のルートです — 後からウィジェットに移行しても、セッションの作成方法は変わりません。リンクの作成
ヘッダーにユーザーのProfile-Key を指定して Link Session の作成を
呼び出します。ホスト型ページの場合、リクエストはこれだけです:
cURL
url が返されます:
Linking URL
この 1 分間の動画はリンクの作成手順を紹介しています。Link Sessions より前に収録されたため、
Private Key を送信する様子が残っていますが、その手順はもう必要ありません。それ以外の内容は
変わっていません。
リンク用 URL の送信
リンク用 URL を開く
リンク用 URL は、新しいブラウザタブ、ウィンドウ、または View Controller で開きます。そのウィンドウの 閉じる、またはリダイレクトする動作 を制御することができます。ソーシャルネットワークは、ホスト型リンクページを iFrame 内で開いたり、承認済みのパートナー
オリジン
profile.ayrshare.com を難読化することを許可していません。連携を自身のページ内で
完結させたい場合は、そのために 埋め込みウィジェットがあります:
ウィジェットのフレームは Ayrshare のオリジンから配信され、これがサポートされている方法です。完了したことを知る
シグナルは 2 つあり、どちらでも使えます:- リンク完了イベント — リンク作成時に
originを設定 すると、連携ウィンドウがconnect:success、connect:error、connect:cancelledを発生と同時に 貴社のページへ post します。ポーリングは不要です。 - Link Session の取得 —
completedAt、lastCompletedAt、completedNetworksを報告します。ネイティブアプリ向けのシグナルであり、帯域外で完了する Telegram にとっては唯一のシグナルです。
リンクの有効期限
リンクはデフォルトで 5 分間 有効です。それを過ぎたら、新しいリンクを作成してください。 Max Pack があれば、expiresIn を分単位で設定して有効期間を広げられます — API が受け付ける最大値は
**2880 分(48 時間)**です:
Expires In
Profile Key
Profile-Key は、リンクがどの User Profile のものかを示します。Ayrshare の開発者ダッシュボードで
そのプロファイルに切り替えると確認できます。
Private Key は使用されなくなりました。 リンクは署名されないため、ファイルから読み込んだり
コードに貼り付けたりするものはありません。レガシーの
privateKey パラメータは引き続き受け付け
られて無視されるので既存の連携はそのまま動作し、Integration Package の private.key ファイルは
使わないままで構いません。プロファイルの切り替え
プロファイルがすでにサインインしている場合、別のプロファイルのリンクを開いてもプロファイルは 切り替わりません — これは意図的なもので、すでにサインインしているユーザーの体験を高速に保つため です。強制的に切り替えるには、 Automatic Logout of a Profile Session を参照してください。Instagram のリンク方式
Instagram アカウントは 2 つの方法でリンクできます: Instagram Login を用いて直接リンクする方法と、接続された Facebook Page を経由する方法です。 ユーザーが Instagram ボタンをクリックしたときにどちらのフローが開始されるかは、通常、アカウント 全体の Instagram Login 設定によって制御されます。instagramLinkMethod ボディパラメータを使用すると、単一のリンクに対してその設定を上書きできます:
Instagram Link Method
- アカウント全体の設定を変更したり、他のリンクに影響を与えたりしません。
- 省略した場合は、これまでどおりアカウント全体の設定が適用されます。
- 無効な値は、有効な値(
instagram、facebook)を列挙した400を返します。 - 上書きを選択する前に、 機能の違い を確認してください — ハッシュタグ検索やコラボレーションなど、一部の Instagram 機能は Facebook Page 認証でのみ利用可能です。
Connect Accounts メール
Ayrshare がリンクをユーザーにメールで送信するので、ユーザーは貴社のアプリを訪れることなく連携ページ に到達できます。より長いexpiresIn と組み合わせてください — デフォルトの 5 分は
受信トレイの中ではまず持ちません。
Connect Accounts JSON
email 内のすべてのフィールドが必須です。 1 つでも欠けると送信は失敗します。
Example Contact Email Request
emailSent で報告します:
Example Contact Email Response
emailSent: false として返されるのではなく、代わりに code: 333 が返されます。
つまり false は、メールが要求されなかったことを意味します。
Connect Accounts メールの例
ソーシャル連携ページを開くメールの例です:
Social Connect Hub <connect@socialconnecthub.com>
モバイルアプリ
リンク用 URL は、埋め込み webview ではなく必ずシステムブラウザで開いてください: webview 内の サインインは Google がdisallowed_useragent で拒否し、Meta は完全にブロックします。ユーザーには
ネットワーク自身のエラーページが表示され、貴社側の対処では解決できません。
- iOS —
ASWebAuthenticationSession、またはSFSafariViewController。 - Android — Chrome Custom Tabs。
origin にカスタム
スキーム(myapp://connected)を設定すると、ページからアプリに戻る手段が確保されます。
モバイルコード例
linkingURL を Link Session の作成が返す url に
置き換えてください。
テスト
まず Postman でリンクの作成をテストすることを推奨します。ダッシュボードの Primary Profile の API Key ページから入手できる Integration Package には、サンプルの Postman 設定が 含まれています。インポートし、profileKey の body フィールドに Profile Key を入力して、Send を
クリックしてください。
サンプル設定には現在も privateKey と domain が事前入力されています。privateKey は無視され、
アカウントにリンク用ドメインが複数ない限り domain は空にして構いません。
Postman からコードを生成することもできます。
Bubble.io
Bubble linking URL
レガシー: generateJWT
リンク用 URL の生成(
generateJWT)は同じ処理を行い、非推奨です —
完全にサポートされ、削除予定はなく、すでに配布済みのリンクについても変更はありません。パラメータの
詳細は同エンドポイントのページに記載されており、現在は受け付けられて無視される 3 つのパラメータも
そこで説明しています。両方のエンドポイントは同じバリデータを使うため、このページの内容はどちらにも当てはまります。移行時に
知っておく価値のある違いは 1 つだけです: generateJWT は、Link Session の作成が拒否する 3 つのもの —
未知の allowedSocial ネットワーク、X 認証情報の片方のみ、文字列でない redirect — を許容します。