gpt4 book ai didi

python - 使用 python sdk 读取 facebook 消息

转载 作者:行者123 更新时间:2023-11-28 21:11:33 24 4
gpt4 key购买 nike

我正在尝试使用 python 脚本读取页面的 facebook 对话。使用此代码

import facebook

at = "page access token"
pid = "page id"
api = facebook.GraphAPI( at )
p = api.get_object( 'me/conversations')
print p

我得到一本包含以下内容的字典

{'paging': {'next': 'https://graph.facebook.com/v2.5/1745249635693902/conversations?access_token=<my_access_token>&limit=25&until=1454344040&__paging_token=<my_access_token>', 'previous': 'https://graph.facebook.com/v2.5/1745249635693902/conversations?access_token=<my_access_token>&limit=25&since=1454344040&__paging_token=<my_access_token>'}, 'data': [{'link': '/Python-1745249635693902/manager/messages/?mercurythreadid=user%3A100000386799941&threadid=mid.1454344039847%3A2e3ac25e0302042916&folder=inbox', 'id': 't_mid.1454344039847:2e3ac25e0302042916', 'updated_time': '2016-02-01T16:27:20+0000'}]}

那些字段是什么?如何获取消息的文本?

编辑:我尝试通过添加来询问“消息”字段

    msg = api.get_object( p['data'][0]['id']+'/messages')
print msg

但它只返回相同的字段。我在 API 文档中搜索了一段时间,但没有找到任何有用的信息。甚至可以使用 python 读取 facebook 页面对话的消息内容吗?

最佳答案

我设法自己找到了答案;这个问题提出得不好,与我要找的不相符。

我想获取页面的 facebook 对话消息的内容。按照 facebook 图形 API 文档,这可以通过询问对话 ({page-id}/conversations),然后是所述对话中的消息 ({conversation-id}/messages, https://developers.facebook.com/docs/graph-api/reference/v2.5/conversation/messages),最后询问消息本身应该返回一个包含所有字段的字典,包括内容 (/{message-id}, https://developers.facebook.com/docs/graph-api/reference/v2.5/message )。

至少这是我认为应该的样子;然而,最后一个请求只返回字段“created_time”和“id”。

我真正想问的是获取“消息”(内容)字段的方法。我假设官方 python facebook sdk 中的函数 graph.get_object() 在任何情况下都应该返回所有字段,因为它只有一个记录的参数( http://facebook-sdk.readthedocs.org/en/latest/api.html )——所请求对象的图形路径,并添加额外的不允许现场请求。

我正在寻找的答案是在另一个问题中,Request fields in Python Facebook SDK .显然,可以通过传递带有此类字段的 **args dict 以及请求的路径来请求特定字段(否则不会返回)。在对 Facebook 图的 GET 请求中相当于添加

?fields=<requested fieds> 

到对象路径。

这是工作代码:

#!/usr/bin/env python

import facebook

at = <my access token>
pid = <my page id>
api = facebook.GraphAPI( at )
args = {'fields' : 'message'} #requested fields
conv = api.get_object( 'me/conversations')
msg = api.get_object( conv['data'][0]['id']+'/messages')
for el in msg['data']:
content = api.get_object( el['id'], **args) #adding the field request
print content

关于python - 使用 python sdk 读取 facebook 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35157754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com