RestFB:使用 Facebook 应用程序获取用户访问令牌

2023-11-25

这就是我所拥有的:

static AccessToken accessToken = new DefaultFacebookClient().obtainExtendedAccessToken("<my app id>", "<my app secret>");
static FacebookClient client = new DefaultFacebookClient();
public static void main(String args[]) {
    System.out.print("Enter Your Status: ");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String status= null;

      try {
         userName = br.readLine();
         System.out.println("..........");
      } catch (IOException ioe) {
         System.out.println("!");
         System.exit(1);
      }

    FacebookType publishMessageResponse =
                client.publish("me/feed", FacebookType.class,
                Parameter.with("message", status));

因此,第一行获取令牌并将其存储为 AccessToken 类型,但这对我有什么好处,因为下一行我需要以字符串形式提供访问令牌,但无法转换它。有帮助吗?


首先,不要将应用程序令牌与用户令牌混淆(更多信息)

要获取用户令牌,您必须

  1. 为用户提供一种针对 Facebook 进行身份验证的方法(更多信息)并接收“代码” - 每个登录请求唯一的加密字符串。
  2. 使用此代码获取用户令牌。

您可以通过以下方式使用纯 RestFB 获取用户令牌:

private FacebookClient.AccessToken getFacebookUserToken(String code, String redirectUrl) throws IOException {
    String appId = "YOUR_APP_ID";
    String secretKey = "YOUR_SECRET_KEY";

    WebRequestor wr = new DefaultWebRequestor();
    WebRequestor.Response accessTokenResponse = wr.executeGet(
            "https://graph.facebook.com/oauth/access_token?client_id=" + appId + "&redirect_uri=" + redirectUrl
            + "&client_secret=" + secretKey + "&code=" + code);

    return DefaultFacebookClient.AccessToken.fromQueryString(accessTokenResponse.getBody());
}

调用很简单:

FacebookClient.AccessToken token = getFacebookUserToken(code, redirectUrl);
String accessToken = token.getAccessToken();
Date expires = token.getExpires();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RestFB:使用 Facebook 应用程序获取用户访问令牌 的相关文章

随机推荐

  • 单击按钮时更改选项菜单的选项

    假设我有一个选项菜单network select它有一个要连接的网络列表 import Tkinter as tk choices network one network two network three var tk StringVar
  • python-click:依赖于另一个选项的选项

    这个问题是关于click包 我想设置我的命令 以便一些optional options取决于特定选项值 并且根据其值需要 所需选项 输入 输入文件 doe 整数 代表算法名称 子选项 如果母鹿是 等于1 then option genera
  • 使用QT,如何在一定时间间隔后调用一次函数,即使可能会发生更多调用?

    尽管我认为这个问题没有那么复杂 但我很难用措辞来表达这个问题 我想做类似的事情QTimer singleshot 但我希望它仍然只调用 SLOT 一次 即使QTimer singleshot 在触发之前被多次调用 如果您只想在计时器关闭后调
  • 实施汉恩窗

    我获取传入数据块并将它们通过 fftw 传递以获取一些光谱信息 一切似乎都正常 但我认为我遇到了一些别名问题 我一直在尝试找出如何在我的数据块上实现汉恩窗口 谷歌的例子让我失望了 我应该查看任何想法或链接吗 double dataIn 20
  • 如何在android 2.2中实现拖放?

    我正在尝试开发一个 Android 应用程序 用户应该能够将图像从网格的一个单元格拖动到另一个单元格 为了实现这一点 我需要 Android 3 0 中引入的拖放 API 但我的应用程序应该在 Android 2 2 中运行 那么 有没有办
  • Puppeteer 中主函数和渲染器函数之间的通信

    有没有一种方法可以在 Puppeteer 中的主进程和渲染进程之间进行通信 类似于ipcMain and ipc渲染器功能于Electron 在此演示了一个简单的应用程序post 我发现此功能对于通过触发事件进行调试非常有用page到主要功
  • 如何在每个应用程序启动时运行一次方法?

    嘿 我想知道如何运行一个方法 refreshChannel in an onCreate仅在我的一项活动中出现一次 直到应用程序被终止或重新启动 你可以延长Application并在中运行该方法onCreate您的自定义应用程序类 每次应用
  • 将 .mat 文件从 MATLAB 转换为 OpenCV 中的 cv::Mat 矩阵

    我有一些 MATLAB 代码想要迁移到 OpenCV MATLAB 代码使用的数据存储在 mat 文件中 然后在运行时加载该文件 我将此 mat 文件转换为 csv 文件 然后使用 ifstream 将这些数据作为字符串读入 OpenCV
  • 在 Ruby 中将数组输出到 CSV

    使用 Ruby 将 CSV 文件读入数组很容易 但我找不到任何关于如何将数组写入 CSV 文件的好的文档 谁能告诉我该怎么做 如果重要的话 我正在使用 Ruby 1 9 2 到一个文件 require csv CSV open myfile
  • R 中具有多列的逻辑向量

    我有以下数据框 a b c d e TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TR
  • 为什么这个解决方案在 Javascript 中有效,但在 Python 中无效? (动态规划)

    我正在学习有关动态编程的教程 并且正在努力在以下问题中实现记忆化 写一个函数叫canSum targetSum numbers 返回True仅当数组中的数字之和达到目标总和时 数组中的所有数字都是正整数 您可以多次使用它们来求解 Examp
  • 如何在 firebase 存储触发函数中获取公共下载链接:“onFinalize”?

    我正在编写一个 firebase 云函数 它将最近上传的文件的下载链接记录到实时数据库 exports recordImage functions storage object onFinalize object gt object 使我可
  • 修复 R/networkD3 包中 Sankey 流程图的顺序

    我想使用桑基流程图可视化美国各州的排名变化 即相对顺序的变化 我正在使用网络d3包并提出以下内容 library dplyr library networkD3 df lt data frame origins state name 1 1
  • 使用本地资源的 SVG 元素的语法

    将 SVG image element 与本地源一起使用时 例如C image png 和互联网上的来源 例如http www google de intl de ALL images logos images logo lg gif 我的
  • Docker-Compose 不会卷我的 php.ini 文件

    我正在尝试使用 docker compose 来存储我的 php ini 文件 以便我可以在本地计算机上即时进行更改 以查看它如何影响主机 不幸的是 到目前为止 我能够将 php ini 文件放入容器的唯一方法是直接在 Dockerfile
  • python:(lambda)函数的字典[重复]

    这个问题在这里已经有答案了 在将 lambda 函数存储到字典中时 我遇到了一些奇怪的行为 如果您尝试将一些默认值传递给循环中的函数 则只会使用最后一个默认值 这里有一些最小的例子 usr bin env python coding utf
  • 从 javascript 生成 Office 打开 XML excel 文件

    有没有办法从 javascript 生成 xlsx 文件并允许用户通过 javascript 下载它 此页面适合在没有互联网连接的情况下以 html 5 离线运行 你可以生成一个data URI 并让用户保存链接 然而 IE8 对数据 UR
  • 无法让 scipy.io.wavfile.read() 工作

    我正在尝试将 wav 文件读入数组 以便可以绘制数组并执行 FFT 我用wave模块打开了文件 现在我很挣扎 建议我使用 scipy io wavfile read filename mmap False 但我没有任何运气 这个函数应该完全
  • 如何在 QML 中创建交错网格视图?

    我正在尝试为我的 QML 应用程序创建一个交错网格视图 如下图所示 我尝试过使用 QML Flow 和 QML Grid 但是它们都没有产生我想要的设计 例如 当我使用 QML Flow 时 它会导致行始终以相同的 Y 值开始 我实现了一个
  • RestFB:使用 Facebook 应用程序获取用户访问令牌

    这就是我所拥有的 static AccessToken accessToken new DefaultFacebookClient obtainExtendedAccessToken