Azure移动:客户端导向的登录操作错误(Facebook)

时间:2013-10-11 06:55:40

标签: facebook azure

我正在尝试使用“客户端定向登录操作”在我的Azure移动服务(http://msdn.microsoft.com/en-us/library/windowsazure/jj710106.aspx)上使用Facebook帐户授权用户

  • 我为该项目下载并配置了iOS Facebook SDK;
  • 以下是用户登录的代码:

    NSArray* permissions = @[@"email, user_about_me, basic_info"];
    [FBSession openActiveSessionWithReadPermissions:permissions
                                       allowLoginUI:YES
                                  completionHandler:^(FBSession* session, FBSessionState status, NSError* error) {
         if (!error) {
              [_msClient loginWithProvider:provider
                                     token:@{@"access_token" : [[session accessTokenData] accessToken]}
                                completion:^(MSUser* user, NSError* error) {
                   NSLog(@"%@", error); 
              }];
         }
    }];
    

  • 此代码返回错误:

    Error Domain=com.Microsoft.WindowsAzureMobileServices.ErrorDomain Code=-1302 "Error: The Facebook Graph API access token authorization request failed with HTTP status code 400" UserInfo=0x1768ba80 {NSLocalizedDescription=Error: The Facebook Graph API access token authorization request failed with HTTP status code 400}
    

    我可以确认,

    NSString* access_token = [[session accessTokenData] accessToken];
    

    返回一个有效的访问令牌,因为它在https://developers.facebook.com/tools/explorer/?method=GET&path=me运行时没有任何错误。

    我做错了什么?

  • 2 个答案:

    答案 0 :(得分:2)

    有类似的问题,我可以确认Azure移动服务返回的错误是最无益的。我最终在这里了解了幕后发生的事情:https://developers.facebook.com/docs/facebook-login/access-tokens/#extending

    然后我尝试通过手动调用GET请求获取长期令牌(https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id= {app-id}& client_secret = {app-secret}& fb_exchange_token = {short-lived-token} )在这里我终于得到了真正的错误信息。在我的情况下,它原来是“请求无效,因为应用程序配置为桌面应用程序”,只需在Facebook应用程序配置中翻转一个开关修复它。

    在您的情况下,它可能是一个不同的错误消息,但我建议您采用这种方法,看看它在哪里。

    答案 1 :(得分:0)

    现在已经很老了,但也遇到了同样的问题。检查你是否没有打开“Is Your App Secret Embedded”。我接受了它,因为我认为ZUMO SDK会在某个地方使用它,但我想它只是存在于你的MS身份配置的云端。 / p>