Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用google访问令牌的Xmpp gtalk身份验证_Iphone_Ios_Xmpp_Google Talk - Fatal编程技术网

Iphone 使用google访问令牌的Xmpp gtalk身份验证

Iphone 使用google访问令牌的Xmpp gtalk身份验证,iphone,ios,xmpp,google-talk,Iphone,Ios,Xmpp,Google Talk,我正在使用xmpp框架将gtalk集成到我的应用程序中。我已使用OAuth 2.0成功验证了用户身份。现在我想使用访问令牌和用户电子邮件来验证xmpp流。我知道使用此方法authenticateWithPassword向xmppStreamDidConnect方法发送身份验证调用。这需要一个密码,我想用谷歌访问令牌完成。有什么帮助吗?是的,您可以这样做,请按照以下步骤操作: 在谷歌开发者控制台上注册你的应用 生成具有以下作用域的访问令牌: 按以下步骤启动身份验证: (BOOL)开始:(n错误

我正在使用xmpp框架将gtalk集成到我的应用程序中。我已使用OAuth 2.0成功验证了用户身份。现在我想使用访问令牌和用户电子邮件来验证xmpp流。我知道使用此方法authenticateWithPassword向xmppStreamDidConnect方法发送身份验证调用。这需要一个密码,我想用谷歌访问令牌完成。有什么帮助吗?

是的,您可以这样做,请按照以下步骤操作:

  • 在谷歌开发者控制台上注册你的应用
  • 生成具有以下作用域的访问令牌:

  • 按以下步骤启动身份验证:

    • (BOOL)开始:(n错误**)错误 { XMPPLogTrace()
    //来自RFC 4616-普通SASL机构: //[authzid]UTF8NUL authcid UTF8NUL passwd // //authzid:授权标识 //authcid:身份验证标识(用户名) //passwd:authcid的密码

  • NSString*accessToken=@“ACCESS-TOKEN-STRING-FROM Google”;//TODO:分配生成的访问令牌 NSLog(@“流支持:%@”,xmppStream.supportedAuthenticationMechanisms); NSString*有效负载=[NSString stringWithFormat:@“\0%@\0%@”,xmppStream.hostName,accessToken]; NSLog(@“有效负载=%@”,有效负载); NSString*base64=[[payload dataUsingEncoding:NSUTF8StringEncoding]xmpp_base64Encoded]; nsxmlement*auth=[nsxmlement elementWithName:@“auth”xmlns:@“urn:ietf:params:xml:ns:xmpp sasl”]; [auth addAttributeWithName:@“mechanism”stringValue:@“X-OAUTH2”]; [auth addAttributeWithName:@“auth:service”stringValue:@“oauth2”]; [auth addAttributeWithName:@“xmlns:auth”stringValue:@”“; [auth setStringValue:base64]

    [xmppStream sendAuthElement:auth];
    
    return YES;
    
    }

    一切都应按预期进行,请评论