我正在使用oauth.io来处理Android应用中的身份验证。我使用该服务登录,然后将访问令牌传递给服务器。作为服务器端验证的一部分,我拨打了https://graph.facebook.com/debug_token?input_token= {用户访问令牌}& access_token = {app token}。我收到错误消息的响应"(#100)input_token中的App_id与Viewing App"不匹配。
我认为这意味着生成访问令牌的应用程序与拥有我在请求中发送的应用令牌的应用程序不同。经过进一步检查,我注意到当我使用Facebook工具(https://developers.facebook.com/tools/debug/accesstoken)调试令牌时,我看到的是另一个属于oauth.io本身而不是我的应用程序的应用程序ID。由于应用令牌基于app id和app secret,因此如果期望oauth.io的app令牌显然不正确。
有没有办法继续通过Facebook使用oauth.io生成的令牌来使用debug_token端点?
答案 0 :(得分:0)
对不起,这有点晚了 - 但它可能仍然可以帮助你:)我遇到了同样的问题。在我的perl代码中,我刚刚做了:
use LWP::Simple;
my $check_session_first = LWP::Simple::get("https://graph.facebook.com/me?access_token=$in->{token}");
if (!$check_session_first) {
print $IN->header;
print Links::SiteHTML::display('error', { error => qq|Sorry, we couldn't log you in. |});
return;
}
基本上,如果 $ check_session_first 为空,则表示会话无效。如果它有效,它将返回一个JSON对象(在我的例子中,我使用“JSON”perl模块进行处理)