当前位置: 首页 > 面试题库 >

以编程方式获取使用Facebook Graph API的访问令牌

陆卓
2023-03-14
问题内容

我正在尝试将bash或python脚本放在一起以与facebook graph
API一起玩。使用API​​看起来很简单,但是我在bash脚本中设置curl来调用authorize和access_token遇到麻烦。有人有可行的例子吗?


问题答案:

更新2018-08-23

由于这仍然有一些意见和支持,我只想提一提,到目前为止,似乎存在一个维护良好的第三方SDK:https : //github.com/mobolic/facebook-
sdk

迟到总比不到好,也许其他人正在寻找它。我在MacBook上使用Python 2.6了。

这需要你有

  • 安装的Python facebook模块:https : //github.com/pythonforfacebook/facebook-sdk,
  • 实际的Facebook应用设置
  • 并且您要发布到的个人资料必须已授予适当的权限,以允许所有不同的内容(例如读写)。

您可以在Facebook开发人员文档中阅读有关身份验证的内容。有关详细信息,请参见https://developers.facebook.com/docs/authentication/。

这篇博客文章也可能对此有所帮助:http : //blog.theunical.com/facebook-
integration/5-steps-to-publish-on-a-facebook-wall-using-
php/

开始:

#!/usr/bin/python
# coding: utf-8

import facebook
import urllib
import urlparse
import subprocess
import warnings

# Hide deprecation warnings. The facebook module isn't that up-to-date (facebook.GraphAPIError).
warnings.filterwarnings('ignore', category=DeprecationWarning)


# Parameters of your app and the id of the profile you want to mess with.
FACEBOOK_APP_ID     = 'XXXXXXXXXXXXXXX'
FACEBOOK_APP_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
FACEBOOK_PROFILE_ID = 'XXXXXX'


# Trying to get an access token. Very awkward.
oauth_args = dict(client_id     = FACEBOOK_APP_ID,
                  client_secret = FACEBOOK_APP_SECRET,
                  grant_type    = 'client_credentials')
oauth_curl_cmd = ['curl',
                  'https://graph.facebook.com/oauth/access_token?' + urllib.urlencode(oauth_args)]
oauth_response = subprocess.Popen(oauth_curl_cmd,
                                  stdout = subprocess.PIPE,
                                  stderr = subprocess.PIPE).communicate()[0]

try:
    oauth_access_token = urlparse.parse_qs(str(oauth_response))['access_token'][0]
except KeyError:
    print('Unable to grab an access token!')
    exit()

facebook_graph = facebook.GraphAPI(oauth_access_token)


# Try to post something on the wall.
try:
    fb_response = facebook_graph.put_wall_post('Hello from Python', \
                                               profile_id = FACEBOOK_PROFILE_ID)
    print fb_response
except facebook.GraphAPIError as e:
    print 'Something went wrong:', e.type, e.message

对获取令牌进行错误检查可能会更好,但是您会想到要做什么。



 类似资料:
  • 我在Android中初始化了Firebase,而没有使用像这样的google-service插件 现在,在初始化firebase应用程序之后,我如何获得生成的令牌来通过FCM发送推送通知

  • 问题内容: 给我一个Bearer令牌,以后可以使用;但是,这是一个shell命令。如何通过Google Cloud Python API以编程方式获取一个? 我看到了使用oauth2client的先前示例,但现在已弃用。如何使用google.auth和oauthlib做到这一点? 问题答案: 答案取决于您的环境以及您如何创建/获取凭据。 什么是Google Cloud凭据? Google Clou

  • 问题内容: 我们使用下面的代码从属性文件中注入具有属性的Spring bean。 有没有一种方法可以通过编程方式访问属性?我试图做一些没有依赖注入的代码。所以我只想要一些这样的代码: 问题答案: 怎么样?

  • 问题内容: 我的资源文件中有很多字符串数组,我想根据用户输入以编程方式访问它们。 因此,如果c == 12,则info应该是名称为“ n_12”的字符串数组。有没有办法做到这一点,并且避免对数百种情况进行switch语句? 谢谢 问题答案: 您可以像这样获取资源ID 然后只需使用该ID 在这里看看有关的另一个示例。

  • 问题内容: 我正在建立一个在线订购系统,但我在澳大利亚,对于国际客户,我想以美元或欧元显示价格,这样他们就不必花心思从澳元转换。 有谁知道我是否可以通过PHP脚本访问的易于解析的格式从网上提取最新汇率? 问题答案: 您可以从yahoo以简单的格式获取货币换算: 例如,将GBP转换为EUR: