首页 文章

基于登录的Facebook帐户自动生成密码

提问于
浏览
1

我正在开发一个iPhone应用程序,需要用户登录Facebook . 然而,这只是为了检索用户的朋友列表,之后我希望通过我自己的XMPP服务器继续通信,我想自动创建帐户到这个服务器 .

为此,我需要一个用户名,这是非常直接的:facebook用户ID,但是我还需要根据显示用户已登录Facebook的某种私钥创建密码 . 对于在任何时间内登录的任何设备,此密钥应该相同,我一直在查看Facebook API,但只能找到访问令牌,我认为当用户从其他设备登录时,该令牌会有所不同 .

我的问题:Facebook API中是否有可用的这些要求?任何有关替代解决方案的建议也会受到欢迎 .

谢谢!

编辑:

例:

  • 用户第一次在他的iPhone上使用该应用程序,使用Facebook登录,应用程序自动在我的XMPP服务器上创建一个帐户,其中用户ID等于facebook ID,密码是显示用户已经登录他的Facebook帐户 .

  • 现在,用户在他的iPad上使用该应用程序,再次登录到他的Facebook帐户,但是在我的XMPP服务器上已经拥有一个帐户,必须从Facebook收到的数据生成相同的密码 .

第2步是给我带来问题的部分,我需要的数据显示用户已登录到他的帐户,无论何时何地登录都是相同的,这样每次都可以生成相同的密码 . 我相信如果我为此使用access_token,那么如果用户例如没有登录60天并且再次开始使用该应用程序,或者甚至当他登录到其他设备时,这将会改变?

澄清一下:Facebook提供的XMPP服务器不符合我的需求,我需要能够发送除聊天消息之外的其他内容,还需要能够存储消息,以便登录的新设备可以同步到适当的状态 .

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/

相关问题