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 に答える