2

同様の質問などからいくつかの提案を試みましたが、どれも私の状況を助けませんでした。

私は Facebook.py Licensed under the Apache License in Google App Engine with Python ソリューションを使用しています。

私の有効なアクセストークンで作成されたGraphAPIオブジェクトがあります。App Engine のログに次のように表示されました。

Graph >>> facebook.GraphAPI object at 0x64cc19e10b2ceb90

そこで、GraphAPI オブジェクトを作成したら、

graph.put_object('Valid Facebook User ID', "feed", 
message="Hello world", link="http://example.com")

これは次のようにエラーログをスローしています:

HTTP Error 400: Bad Request: 
Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 701, in __call__
    handler.get(*groups)
  File "/base/data/home/apps/s~/development.358229427391780612/handler/profile_handlers.py", line 401, in get
    graph.put_object(self.user.user_id, "feed", message="Hello world", link="http://example.com")
  File "/base/data/home/apps/s~/development.358229427391780612/facebook.py", line 129, in put_object
    return self.request(parent_object + "/" + connection_name, post_args=data)
  File "/base/data/home/apps/s~/development.358229427391780612/facebook.py", line 181, in request
    file = urllib2.urlopen(graphUrl, post_data)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 124, in urlopen
    return _opener.open(url, data)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 387, in open
    response = meth(req, response)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 498, in http_response
    'http', request, response, code, msg, hdrs)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 425, in error
    return self._call_chain(*args)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 360, in _call_chain
    result = func(*args)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 506, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 400: Bad Request

最初は、添付ファイル (リンク、説明など) として多くの追加データを入れていました。ただし、アタッチメント要素を減らした後でも、同じエラーがスローされます。また、put_wall_post のメソッドを使用していました。代わりに put_object を使用することを提案する人もいます。

フォーラムで多くの検索を試みましたが、いくつかの提案の問題を解決できませんでした。

主な問題は何ですか?

4

1 に答える 1

1

投稿された問題を自分で解決しました。これをまだ解決しようとしていて、同じエラーが発生する可能性がある人のために、解決策を共有させてください.

以前のように、ユーザーに要求した許可が基本的なアクセス情報に対してのみ付与されたことを知りませんし、認識していません。

facebook.py の元のソリューションにより:

if response.get("error"):
           raise GraphAPIError(response["error"]["type"],
                              response["error"]["message"])

カスタム例外の発生は、実際の例外を反映せず、デバッグが 3 倍難しくなるため、常に悪いことです。提供された元のカスタム例外により、次の例外が発生しました。

HTTP Error 400: Bad Request

多くの場合、不適切な URL フォームなどに関連しています。

したがって、それを疑って、例外を次のように変更しました。

if response.get("error"):
    raise

これにより、キャッチした実際の例外が発生します。

HTTP Error 403: Forbidden

本当の例外があることで、私はすぐに、承認の問題または Facebook ユーザーの許可を疑いました。したがって、これを解決するには、次のようにします。

FB.login(function(response) {
    // handle the response
}, {scope: 'publish_actions'});

HTTP エラー 403: Forbidden が発生する例外については、問題を解決する必要があります。Cheeeersssss !

于 2012-04-21T06:24:32.133 に答える