2014-12-28 36 views
0

我正在使用oauth.io处理Android应用中的身份验证。我使用该服务登录,然后将访问令牌传递给服务器。作为服务器端验证的一部分,我拨打https://graph.facebook.com/debug_token?input_token= {user access token} & access_token = {app token}。我收到了错误消息“(#100)input_token中的App_id与查看应用程序不匹配”的响应。验证oauth.io Facebook访问令牌

我认为这意味着生成访问令牌的应用与拥有我在请求中发送的应用令牌的应用不同。经过进一步的检查,我注意到当我用Facebook的工具(https://developers.facebook.com/tools/debug/accesstoken)调试令牌时,我看到一个不同的应用程序ID,它属于oauth.io本身,而不是我的应用程序。由于应用令牌基于应用ID和应用密码,因此如果期望获得oauth.io的应用令牌,则显然不正确。

是否有任何方法通过Facebook使用由oauth.io生成的令牌继续使用debug_token端点?

回答

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模块进行处理)