1

ユーザーが Facebook にログインする必要がある iPhone アプリケーションに取り組んでいます。ただし、それはユーザーのフレンドリストを取得するだけで、その後は自分の XMPP サーバーを介して通信を続けたいので、このサーバーへのアカウント作成を自動化したいと考えています。

これには非常に簡単なユーザー名が必要です。Facebook ユーザー ID ですが、ユーザーが Facebook にログインしていることを示す何らかの秘密鍵に基づいてパスワードを作成する必要もあります。このキーは、ログインしているどのデバイスでも同じである必要があります。Facebook API を見てきましたが、アクセス トークンしか見つかりませんでした。これは、ユーザーが別のデバイスからログインすると異なると思います。

私の質問: これらの要件を備えた Facebook API から利用できるものはありますか? 代替ソリューションの提案も歓迎します。

ありがとう!

編集:

例:

  1. ユーザーが iPhone で初めてアプリを使用し、Facebook でログインすると、アプリは XMPP サーバーにアカウントを自動的に作成します。ユーザー ID は Facebook ID と同じで、パスワードはユーザーがログインしたことを示すものです。彼のフェイスブックアカウントに。
  2. ユーザーは iPad でアプリを使用し、Facebook アカウントに再度ログインしますが、XMPP サーバーに既にアカウントを持っているため、Facebook から受信したデータから同じパスワードを生成する必要があります。

ステップ 2 は私にとって問題となる部分です。ユーザーが自分のアカウントにログインしていることを示すデータが必要です。また、同じパスワードを毎回生成できるようにするために、いつでもどこでも同じです。 . これにaccess_tokenを使用すると、たとえばユーザーが60日間ログインせずにアプリを再度使用し始めた場合、または別のデバイスにログインした場合でも、これは変わると思いますか?

明確にするために: Facebook が提供する XMPP サーバーは私のニーズに合っていません。チャット メッセージ以外に他のものを送信できる必要があり、ログオンする新しいデバイスを適切な状態に同期できるようにメッセージを保存できる必要もあります。 .

4

1 に答える 1

0

Facebook XMPP の場合、X-FACEBOOK-PLATFORM と呼ばれるカスタム SASL メカニズムを使用することをお勧めします。基本的に、ユーザーはまずアプリケーションにログインし、xmpp_login 拡張アクセス許可を付与する必要があります。クライアント側のフローに従って、xmpp_login 拡張アクセス許可を持つユーザーの有効な access_token を取得します。

次のパラメーターを使用して、base64 でエンコードされた文字列を TLS 経由で送信します。

string method: Should be the same as the method specified by the server.
string api_key: The application key associated with the calling application.
string access_token: The access_token obtained in the above step.
float call_id: The request's sequence number.
string v: This must be set to 1.0 to use this version of the API.
string format: Optional - Ignored.
string cnonce: Optional - Client-selected nonce. Ignored.
string nonce: Should be the same as the nonce specified by the server.

appID (api_key) は複数のコンテキストで使用でき、ユーザーのデバイスごとにユーザー アクセス トークンを取得できます。

チャット API のドキュメントは次のとおりです: https://developers.facebook.com/docs/chat/

于 2012-05-04T13:59:19.733 に答える