我正在开发一个需要用户登录Facebook的iPhone应用程序。然而,这只是为了检索用户的朋友列表,之后我希望通过我自己的XMPP服务器继续通信,我想自动创建帐户到这个服务器。
为此我需要一个用户名,这是非常直接的:facebook用户ID,但是我还需要根据显示用户已登录Facebook的某种私钥创建密码。对于在任何时间内登录的任何设备,此密钥应该相同,我一直在查看Facebook API,但只能找到访问令牌,我认为当用户从其他设备登录时,该令牌会有所不同。 / p>
我的问题:Facebook API中是否有可用的这些要求?任何有关替代解决方案的建议也会受到欢迎。
谢谢!
编辑:
示例:
第2步是给我带来问题的部分,我需要的数据显示用户已经登录到他的帐户,并且无论何时何地登录都是相同的,只是为了使相同的密码可以每次产生。我相信如果我为此使用access_token,那么如果用户例如没有登录60天并再次开始使用该应用程序,或者甚至当他登录到其他设备时,这将会改变?
澄清一下:Facebook提供的XMPP服务器不符合我的需求,我需要能够发送除聊天消息之外的其他内容,还需要能够存储消息,以便登录的新设备可以同步到一个合适的国家。
答案 0 :(得分: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/