使用图形API编写代码

时间:2013-09-12 07:21:37

标签: python facebook api facebook-graph-api

我对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. 导入json - &gt;为什么json在这里进口?给出一个有条理的回复?
  2. 什么是'AFTER'和空变量'TOKEN'在这里?
  3. get_post()函数中的变量'query'和'payload'是什么? 几乎可以准确地解释每种方法和功能的作用。
  4. 我知道我非常天真,但这可能是一个好的开始。一点点暗示,我可以继续。 如果不解释代码,这很无聊,我理解,请告诉我如何在编写代码后链接到API,这意味着编写的脚本如何与所需的API进行通信。

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

1 个答案:

答案 0 :(得分:2)

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