Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python库获取Facebook访问令牌?_Python_Facebook_Facebook Graph Api - Fatal编程技术网

如何使用Python库获取Facebook访问令牌?

如何使用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

我发现这似乎是官方的答案,但每次我找到答案,一半都是关于Javascript或PHP以及如何从链接中提取的链接

如何在简单的python脚本上实现它


注:我真的不明白,如果我们可以使用
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,你能帮我吗?