2014-12-28 35 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模塊進行處理)