1

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

  • 我为该项目下载并配置了 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没有任何错误。

    我究竟做错了什么?

  • 4

    2 回答 2

    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 应用程序配置中翻转一个开关即可修复它。

    在你的情况下,它可能是一个不同的错误信息,但我建议你采用这种方法,看看它会把你带到哪里。

    于 2014-01-02T16:29:34.057 回答
    0

    这是旧的,但只是有同样的问题。检查您是否没有打开“您的应用程序秘密是否嵌入”。我打开它是因为我认为 ZUMO SDK 会在某个地方拥有它,但我猜它只是存在于您的 MS 身份配置中的云上。

    于 2014-06-22T21:23:02.127 回答