我对 python、脚本和 API 非常陌生,我只是在学习。我发现了一个非常酷的代码,它使用 facebook api 来回复生日祝福。
我会添加我的问题,我会给它编号,以便以后其他人也能更容易。我希望这个问题能够消除很多新手的疑虑。
1)说到API,通常采用什么格式?它是我们需要下载并稍后导入的库文件吗?例如,twitter API,我们需要导入twitter
?
这是代码:
import requests
import json
AFTER = 1353233754
TOKEN = ' <insert token here> '
def get_posts():
"""Returns dictionary of id, first names of people who posted on my wall
between start and end time"""
query = ("SELECT post_id, actor_id, message FROM stream WHERE "
"filter_key = 'others' AND source_id = me() AND "
"created_time > 1353233754 LIMIT 200")
payload = {'q': query, 'access_token': TOKEN}
r = requests.get('https://graph.facebook.com/fql', params=payload)
result = json.loads(r.text)
return result['data']
def commentall(wallposts):
"""Comments thank you on all posts"""
#TODO convert to batch request later
for wallpost in wallposts:
r = requests.get('https://graph.facebook.com/%s' %
wallpost['actor_id'])
url = 'https://graph.facebook.com/%s/comments' % wallpost['post_id']
user = json.loads(r.text)
message = 'Thanks %s :)' % user['first_name']
payload = {'access_token': TOKEN, 'message': message}
s = requests.post(url, data=payload)
print "Wall post %s done" % wallpost['post_id']
if __name__ == '__main__':
commentall(get_posts())`
问题:
- 导入json-->这里为什么导入json?给出结构化的答复?
- 这里的“AFTER”和空变量“TOKEN”是什么?
- get_post() 函数中的变量“query”和“payload”是什么? 准确解释几乎每个方法和函数的作用。
我知道我非常天真,但这可能是一个好的开始。一点提示,我可以继续。 如果不解释代码,那很无聊,我明白,请告诉我代码写完后如何链接到API,也就是说编写的脚本如何与所需的API通信。
这不是我的代码,我从来源复制的。
最佳答案
- 需要 json 来访问 Web 服务并解释通过 HTTP 发送的数据。
- “AFTER”变量应该用于假设在此特定时间戳之后的所有帖子都是生日祝福。
- 要使程序运行,您需要一个 token ,您可以从 Graph API Explorer 获取该 token 。具有适当的权限。
关于python - 使用图形 API 编写代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18757916/