有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Facebook应用程序访问令牌和普通ol访问令牌

我想知道是否有人能帮我理解访问令牌和应用访问令牌之间的区别,以及何时使用它们

当我使用restFB库获取访问令牌时,我的问题是:

AccessToken accessTokenT =
               new DefaultFacebookClient().obtainAppAccessToken(appID, appSecret);

正如我所料,它会返回应用程序访问令牌。但是,当我使用该令牌实例化FacebookClient对象时:

FacebookClient facebookClient = new DefaultFacebookClient(accessToken);

它失败,并显示以下消息:

Exception in thread "main" com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: (#200) The user hasn't authorized the application to perform this action (code 200, subcode null)

如果我去graph explorer手动获取一个访问令牌,然后在代码中使用它,一切正常

我确信我遗漏了一些微妙的东西,任何帮助都将不胜感激

非常感谢


共 (1) 个答案

  1. # 1 楼答案

    主要有3种类型的访问令牌-

    1. 用户访问令牌
    2. 页面访问令牌
    3. 应用访问令牌

    facebook的文档:Access Tokens解释了很多关于它们的内容。你可以看看

    您应该使用用户访问令牌初始化facebookClient。用户访问令牌是在用户登录/授权应用程序时获得的。此令牌用于查询有关用户的信息(了解用户授予应用程序的权限)。应用程序访问令牌的权限非常有限,比如:在用户授予应用程序授权后代表用户发布,或发送请求等