创建没有UI的Facebook Graph API用户访问令牌



我想用这个api来抓取我的Instagram帖子上的喜欢数量。

我可以使用从Graph API Explorer生成的访问令牌成功调用端点,但我正在试图找到一种方法以编程方式生成访问令牌。API文档中有关于如何从Web/Mobile UI请求访问令牌的示例,但我希望该脚本位于服务器上并作为cronjob等运行。

我已经看到了一些关于如何从代码中将短期令牌转换为长期令牌的资源,但是有可能从代码生成初始令牌吗?

这种方法可能不适用于所有人,但我最终使用webdriver来自动化OAuth登录过程。

import requests
from selenium import webdriver
app_id = 1234567890
secret = '...'
redirect = 'https://whatever' # needs to be added in app settings
fb_username = '...'
fb_password = '...'
login_url = 'https://www.facebook.com/v14.0/dialog/oauth'
login_url += f'?client_id={app_id}&redirect_uri={redirect}'
b = webdriver.Firefox()
b.get(login_url)
b.find_element_by_xpath('//*[@id="email"]').send_keys(fb_username)
b.find_element_by_xpath('//*[@id="pass"]').send_key(fb_password)
b.find_element_by_xpath('//*[@id="loginbutton"]').click()
code = b.current_url.split('=')[1]
url = 'https://graph.facebook.com/v14.0/oauth/access_token?'
url += f'client_id={app_id}'
url += f'&redirect_uri={redirect}'
url += f'&client_secret={secret}'
url += f'&code={code}'
resp = requests.get(url)
if resp.status_code == 200:
print(resp.json()['access_token'])

最新更新