我正在尝试使用“客户端定向登录操作”在我的 azure-mobile 服务 ( http://msdn.microsoft.com/en-us/library/windowsazure/jj710106.aspx ) 上使用 Facebook 帐户授权用户
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];
返回一个有效的访问 token ,因为它在这里工作 https://developers.facebook.com/tools/explorer/?method=GET&path=me没有任何错误。
我做错了什么?
最佳答案
有类似的问题,我可以确认 Azure 移动服务返回的错误是最没有帮助的。我最终读到了这里发生的事情:https://developers.facebook.com/docs/facebook-login/access-tokens/#extending
然后我尝试通过手动调用 GET 请求来获取长期 token ( 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 应用程序配置中的开关即可修复它。
在您的情况下,这可能是一条不同的错误消息,但我建议您采用这种方法,看看它会带来什么结果。
关于facebook - Azure 移动 : Client-directed login operation error (Facebook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19312009/