0

私は問題があり、初心者で、Facebookに投稿する単純な非同期プログラムを作成しようとしています。tornadoのtornado-facebook-sdkを使用しています。コードは次のとおりです。

class MainHandler(BaseHandler, tornado.auth.FacebookGraphMixin):
    @tornado.web.authenticated
    @tornado.web.asynchronous
    def get(self):
        self.facebook_request("/me/home", self.print_callback, access_token=self.current_user["access_token"])
        a = self.current_user["access_token"]
        #print a

    def print_callback(data):
        print data
        ioloop.stop()
        graph.get_object('/facebook', callback=print_callback)

そして私はこのエラーを受け取ります:

TypeError: print_callback() takes exactly 1 argument (2 given)

この例を理解してトークンを取得してから、次の例を使用するためです。

def callback(response):
    # ...
graph.put_object('me', 'feed', message="Maoe!!", callback=callback)

Facebookの壁に何かを書くために、同期ライブラリでそれを行いましたが、残念ながらこれはブロックされています!

更新:まだ取得してエラー:

class MainHandler(BaseHandler, tornado.auth.FacebookGraphMixin):
    @tornado.web.authenticated
    @tornado.web.asynchronous
    def get(self):
        self.facebook_request("/me/home", self.print_callback, access_token=self.current_user["access_token"])
        a = self.current_user["access_token"]
        print a

    def print_callback(self, data):
        graph.post_wall(self, "heloooooooo")

そしてこのエラーが発生しました:

[E 121009 14:28:47 web:1108] Uncaught exception GET / (::1)
HTTPRequest(.....)
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\tornado-2.4.post1-py2.7.egg\tornado\web.py", line 1043, in _stack_context_handle_exception
   raise_exc_info((type, value, traceback))
   File "C:\Python27\lib\site-packages\tornado-2.4.post1 py2.7.egg\tornado\stack_context.py", line 237, in _nested
    yield vars
  File "C:\Python27\lib\site-packages\tornado-2.4.post1-py2.7.egg\tornado\stack_context.py", line 210, in wrapped
    callback(*args, **kwargs)
  File "C:\Python27\lib\site-packages\tornado-2.4.post1-py2.7.egg\tornado\gen.py", line 405, in inner self.set_result(key, result)
  File "C:\Python27\lib\site-packages\tornado-2.4.post1-py2.7.egg\tornado\gen.py", line 335, in set_result
    self.run()
  File "C:\Python27\lib\site-packages\tornado-2.4.post1-py2.7.egg\tornado\gen.py", line 365, in run
    yielded = self.gen.send(next)
  File "build\bdist.win-amd64\egg\facebook\graphapi.py", line 129, in _make_request
    raise GraphAPIError(data)
GraphAPIError: (#200) This API call requires a valid app_id.

Facebookにアクセスすると、それが使用している有効なキーであることがわかります。生成されたトークン(ここではa変数)を使用し、それをApi Debugに貼り付けると、すべてが正常に機能します。

 Valid : True
 Origin : Web
 Scopes : create_note photo_upload publish_actions publish_stream read_stream share_item status_update video_upload
4

1 に答える 1

1

に追加selfprint_callbackます。

def print_callback(self, data):
    print data
    ioloop.stop()
    graph.get_object('/facebook', callback=print_callback)
于 2012-10-08T14:59:09.497 に答える