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。

您使用以下参数通过 TLS 发送 base64 编码字符串:

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 回答