首页 文章

Facebook - 如何获得永久用户访问令牌[重复]

提问于
浏览
4

这个问题在这里已有答案:

我的公司有一个企业Facebook帐户,他们在不同的专辑中发布活动照片 . 我的要求是从Facebook专辑中获取所有照片并在我们的公司网站上显示 . 我可以获取照片,但用户访问令牌仅在60天内有效,这意味着每隔两个月我将必须登录公司的公司Facebook帐户,重新生成令牌并更新我的应用程序中的令牌 .

有没有办法生成永久访问令牌?或者以任何方式在我的应用程序级别重新生成令牌(没有显示登录对话框)?

有没有其他方法来获取照片而不创建应用程序?

我按照以下步骤操作:https://www.facebook.com/dialog/oauth?client_id=%3CCLIENT_ID%3E&scope=manage_pages&redirect_uri=我从此API调用中获取了代码 . 然后我得到令牌如下:https://graph.facebook.com/oauth/access_token?client_id=&redirect_uri =&client_secret =&code =我使用Access令牌调试器验证了令牌 . 令牌有效期为60天 . 要获取页面令牌,我使用了url:graph.facebook.com/me/accounts?access_token=我获得了应用页面的令牌 . 我在工具中验证了这个令牌,它仅在60天内有效

谢谢

1 回答

  • 3

    我还想在不创建应用程序的情况下访问数据 . 我尝试了很多东西,但最后我不得不为了它创建app . 所以你必须创建一个应用程序 .

    此外,如果您看到开发者网站,则表示他们在2012年12月删除了"offline_access "权限 . 请参阅此处:https://developers.facebook.com/roadmap/offline-access-removal/ . 因此,他们带来了长期存取令牌 . 他们也说我引用," If you would like to refresh a still valid long-lived access_token, you will have to get a new short-lived user access_token first and then call the same endpoint below."

    因此,您必须再次获取短期访问令牌,并使用短期令牌获取长期令牌 . 要获取长期访问令牌,您可以发送如下HTTP请求:

    var short_access_token; //Get this
    var xhr = new XMLHttpRequest();
    var f_url = "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=CLIENT_ID&client_secret=APP_CLIENT_SECRET&fb_exchange_token="+short_access_token;
    
    xhr.open("GET", f_url , true);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            obj = xhr.responseText;
            long_token =  obj.split('=')[1].split('&')[0];
        }
    }
    xhr.send();
    

    希望能帮助到你

相关问题