0

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

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

有什么方法可以通过 Facebook 使用 oauth.io 生成的令牌继续使用 debug_token 端点?

4

1 回答 1

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

于 2015-01-23T15:35:01.533 回答