私は、ユーザーがブログ投稿のようなプライベート コンテンツを作成し、そのコンテンツへのアクセスを特定の Facebook の友達に許可できるサイトを持っています。ユーザーが自分のページの URL をコピーして貼り付けて手動で友達に送信する必要がないように、Facebook の友達に招待する方法を理解するのに苦労しています。
これは私が実装しようとしているワークフローです:
John は、フォームに入力し、それを表示できる Facebook の友達を選択して、私のサイトに新しいブログ投稿を作成します。スーザンは選ばれた友達の一人です。
John がフォームを送信します。私のサイトはブログ投稿を保存し、新しい投稿のページの一意の URL を生成します。
John には、以前に選択した友人が取り込まれた Facebook の App Request ダイアログ UI が表示されます。John はダイアログ UI を確認します。
Facebook の API がここから引き継ぎ、App Request を各友人 (Susan を含む) に送信します。
Susan は自分の iPhone から Facebook を起動します (Facebook.com ではなく、ネイティブの iPhone facebook アプリです)。
Susan は、アプリ リクエストを表示する Facebook アプリに新しい通知があることを確認します。また、彼女のニュース フィードにもアプリ リクエストが表示されます。
Susan が App Request のリンクをクリックすると、招待されたブログ投稿の一意の URL に移動します。
John がブログ投稿を作成して友人を招待するたびに、このワークフロー プロセス全体が繰り返されます。したがって、John が 2 つのブログ投稿を作成し、Susan をその両方に招待した場合、Susan はそれぞれが一意の URL を持つ 2 つの別々の招待を受け取るはずです。
このコード (Facebook JavaScript SDK から) を使用して、App Request UI ダイアログを実装しました。
function sendRequestToRecipients() {
FB.ui({method: 'apprequests',
message: 'Check out my new blog post',
to: '499802820,499802852' //list of selected Friend IDs go here
}, requestCallback);
}
さて、どのように機能するのか理解できない部分は次のとおりです。
Facebook の App Request UI ダイアログを使用しようとすると、友人 (上記の例では Susan) が Facebook.com にアクセスした場合にのみ招待が表示されます。彼女が Facebook の iPhone アプリを開いたとき、それは見えません。
各アプリ リクエストで一意の URL を送信する方法がわかりません。App Request UI ダイアログは、登録した Facebook Web アプリに URL を送信するように設計されているようです。たとえば、登録した Web アプリの URL が www.example.com の場合、それがアプリ リクエストで使用されます。代わりに、URL が www.example.com/someRandomUniqueID であることを指定できるようにする必要があります。
Susan の友達がアプリ リクエストの投稿を見ないことが重要です。タイムラインの投稿などとして表示されるべきではありません。Susan だけが自分の App Request を表示できるようにする必要があります。
私がやろうとしていることは可能ですか?