如何使用Python库获取Facebook访问令牌?
我发现这似乎是官方的答案,但每次我找到答案,一半都是关于Javascript或PHP以及如何从链接中提取的链接 如何在简单的python脚本上实现它如何使用Python库获取Facebook访问令牌?,python,facebook,facebook-graph-api,Python,Facebook,Facebook Graph Api,我发现这似乎是官方的答案,但每次我找到答案,一半都是关于Javascript或PHP以及如何从链接中提取的链接 如何在简单的python脚本上实现它 注:我真的不明白,如果我们可以使用urllib和regex提取信息,为什么使用库而不能提取token。您需要一个web前端供用户授予权限,以便您可以获得访问令牌 改为:您无法通过编程方式获取访问令牌,必须进行手动用户交互 在Python中,它将涉及设置一个web服务器,例如使用facepy更新提要的脚本 import web from facepy
注:我真的不明白,如果我们可以使用
urllib
和regex
提取信息,为什么使用库而不能提取token
。您需要一个web前端供用户授予权限,以便您可以获得访问令牌
改为:您无法通过编程方式获取访问令牌,必须进行手动用户交互
在Python中,它将涉及设置一个web服务器,例如使用facepy更新提要的脚本
import web
from facepy import GraphAPI
from urlparse import parse_qs
url = ('/', 'index')
app_id = "YOUR_APP_ID"
app_secret = "APP_SECRET"
post_login_url = "http://0.0.0.0:8080/"
user_data = web.input(code=None)
if not user_data.code:
dialog_url = ( "http://www.facebook.com/dialog/oauth?" +
"client_id=" + app_id +
"&redirect_uri=" + post_login_url +
"&scope=publish_stream" )
return "<script>top.location.href='" + dialog_url + "'</script>"
else:
graph = GraphAPI()
response = graph.get(
path='oauth/access_token',
client_id=app_id,
client_secret=app_secret,
redirect_uri=post_login_url,
code=code
)
data = parse_qs(response)
graph = GraphAPI(data['access_token'][0])
graph.post(path = 'me/feed', message = 'Your message here')
导入web
从facepy导入GraphAPI
从URL解析导入解析
url=(“/”,“索引”)
app\u id=“你的app\u id”
app\u secret=“app\u secret”
post_登录_url=”http://0.0.0.0:8080/"
用户\数据=web.input(代码=无)
如果不是用户_data.code:
对话框_url=(“http://www.facebook.com/dialog/oauth?" +
“客户端id=“+应用程序id”+
“&redirect_uri=“+post_login_url”+
“&scope=publish\u stream”)
返回“top.location.href=”+对话框\u url+“”
其他:
graph=GraphAPI()
response=graph.get(
path='oauth/access\u token',
客户端id=应用程序id,
客户端密码=应用程序密码,
重定向\u uri=post\u登录\u url,
代码=代码
)
数据=解析(响应)
graph=GraphAPI(数据['access\u token'][0])
graph.post(路径='me/feed',消息='yourmessage here')
以下是我试图用Tornado
做的要点,因为答案是使用web.py
我不确定这是否对任何人都有帮助,但我能够通过以下代码获得oauth\u访问\u令牌
from facepy import utils
app_id = 134134134134 # must be integer
app_secret = "XXXXXXXXXXXXXXXXXX"
oath_access_token = utils.get_application_access_token(app_id, app_secret)
希望这有帮助。ahhh!这就是我需要的!完整的解决方案,最后一个问题,
post\u login\u url
是我在制作facebook应用程序(localhost:8888)时注册的链接吗?@Abdelouahab上面创建了一个位于local:8888的Web服务器,所以我只是在验证后重定向回local:8888,因此top.location.href
(尽管对于这个具体的例子,您的问题的答案是肯定的)只是关于返回的问题
它应该被删除,因为没有function@Abdelouahab这并不是整个脚本,只是一些片段拼凑在一起,给出了基本要点,大部分代码都在一个索引类中,嗨,我不熟悉tornado,我很难理解我应该把我的访问令牌、我的应用程序密码放在哪里和我的应用程序ID,你能帮我吗?