4

Facebookのファンページに簡単なウォールポストを作りたいです。私はAPP_ID + APP SECRETを持っていて、アクセストークンを取得できますが、facebook.GraphAPI()に苦労していますこれはコードです:

# -*- coding: utf-8 -*-

import urllib
import facebook

FACEBOOK_APP_ID = '12345'
FACEBOOK_APP_SECRET = '123456789'
FACEBOOK_PROFILE_ID = '321321321321'
oauth_args = dict(
  client_id = FACEBOOK_APP_ID,
  client_secret = FACEBOOK_APP_SECRET,
  grant_type = 'client_credentials')
oauth_response = urllib.urlopen('https://graph.facebook.com/oauth/access_token?'
  + urllib.urlencode(oauth_args)).read()

# oauth_response looks like this:
# access_token=2732467743847839726|3gddzdg3Wl-5S_Go      

attach = {
  "name": 'Hello',
  "link": 'http://www.link.com',
  "caption": 'test',
  "description": 'some test',
  "picture" : 'http://img/picture.png',
}

facebook_graph = facebook.GraphAPI(oauth_response.split('=')[1])
try:
    response = facebook_graph.put_wall_post('', attachment=attach)
except facebook.GraphAPIError as e:
    print e

スクリプトを実行すると、次のエラーが表示されます。

Traceback (most recent call last):
  File "fb.py", line 27, in <module>
    facebook_graph = facebook.GraphAPI(oauth_response.split('=')[1])
AttributeError: 'module' object has no attribute 'GraphAPI'

Windows と ubuntu マシンでこのコードを試しましたが、同じエラーが発生しました。Facebookモジュールを再インストールしようとしましたが、何も役に立ちませんでした。誰でもこの問題を解決する方法を知っていますか?

編集:これを追加import pydoc; pydoc.help(facebook)すると、出力は次のようになります:

Help on package facebook:

NAME
    facebook - TODO: Document your package.

FILE
    c:\python26\lib\site-packages\facebook-0.0-py2.6.egg\facebook\__init__.py

PACKAGE CONTENTS


DATA
    __loader__ = <zipimporter object "C:\Python26\lib\site-packages\facebo...
    __version__ = 'TODO: Enter a version'

VERSION
    TODO: Enter a version


Traceback (most recent call last):
  File "fb.py", line 29, in <module>
    facebook_graph = facebook.GraphAPI(oauth_response.split('=')[1])
AttributeError: 'module' object has no attribute 'GraphAPI'
4

2 に答える 2

8

PyPI の Facebook パッケージがめちゃくちゃです。facebookあなたが望むわけではありませんが、 facebook-sdk.

あなたが正しいものを持っていることを確認してください:

pip uninstall facebook  # Remove the broken package
pip install facebook-sdk  # Install the correct one
于 2013-09-28T11:07:29.777 に答える
6

そのパッケージは正しくありません。この github repoから再ダウンロードしてインストールしてみてください。


私は同じことをしただけで、これは私の出力ですpydoc.help(facebook)(これもhelpインタラクティブプロンプトにあります):

Help on module facebook:

NAME
    facebook - Python client library for the Facebook Platform.

FILE
    /usr/lib/python2.7/site-packages/facebook.py

DESCRIPTION
    This client library is designed to support the Graph API and the
    official Facebook JavaScript SDK, which is the canonical way to
    implement Facebook authentication. Read more about the Graph API at
    http://developers.facebook.com/docs/api. You can download the Facebook
    JavaScript SDK at http://github.com/facebook/connect-js/.

    If your application is using Google AppEngine's webapp framework, your
    usage of this module might look like this:

    user = facebook.get_user_from_cookie(self.request.cookies, key, secret)
    if user:
        graph = facebook.GraphAPI(user["access_token"])
        profile = graph.get_object("me")
        friends = graph.get_connections("me", "friends")

CLASSES
    __builtin__.object
        GraphAPI
    exceptions.Exception(exceptions.BaseException)
        GraphAPIError

    class GraphAPI(__builtin__.object)
     |  A client for the Facebook Graph API.
...

そのため、正しくインストールされていません。


facebook.pyファイルを現在のディレクトリ (質問のファイルと同じ) にコピーして再実行することをお勧めします。失敗したインストールを回避できることを願っています。

于 2013-09-27T21:29:43.010 に答える