1

我对 python 、脚本和 API 非常陌生,我只是在学习。我遇到了一个非常酷的代码,它使用 facebook api 回复生日祝福。

我会添加我的问题,我会给它编号,以便以后其他人也更容易。我希望这个问题能消除很多新手的疑惑。

1)谈论API,通常采用什么格式?它是我们需要下载并稍后导入的库文件吗?例如,twitter API,我们需要import 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())`

问题:

  1. importing json-->这里为什么要导入json?给出结构化的答复?
  2. 这里的“AFTER”和空变量“TOKEN”是什么?
  3. get_post() 函数中的变量 'query' 和 'payload' 是什么?几乎准确地解释了每个方法和函数的作用。

我知道我非常天真,但这可能是一个好的开始。一点提示,我可以继续。如果不解释代码,这很无聊,我明白了,请告诉我如何在编写代码后链接到 API,即编写的脚本如何与所需的 API 通信。

这不是我的代码,我是从源代码中复制的。

4

1 回答 1

2
  1. 需要 json 来访问 Web 服务并解释通过 HTTP 发送的数据。
  2. 'AFTER' 变量应该习惯于假设在这个特定时间戳之后的所有帖子都是生日祝福。
  3. 要使程序正常工作,您需要一个令牌,您可以从Graph API Explorer获得具有适当权限的令牌。
于 2013-09-12T07:32:47.047 回答