0

アプリで Open Graph を構成しようとしています。ユーザーが「リンク」をクリックすると、アプリはフィード/タイムライン/アクティビティに「投稿」する必要があります。( I created open graph actions for these features and successfully added meta tags in the page)。

だから、私はこの仕事をするためにfandjangoとを使っています。facepy

これが私のコードの外観です..

from facepy import GraphAPI

@csrf_exempt
@facebook_authorization_required(permissions=["publish_actions"])
def ViewPage (request):
    access_token = request.facebook.user.oauth_token
    profile_id = request.facebook.user.facebook_id
    path = "/%d/feed" %profile_id

    # How should I get the OpenGraph JSON obj
    og_data = ??
    graph = GraphAPI(access_token)
    graph.post(path, og_data)
    ...
    return render_to_response("view.html", context)

graphフィード/タイムライン/アクティビティにデータを投稿するには、開いているグラフの JSON obj を上記のオブジェクトにパラメーターとして渡すにはどうすればよいですか?

これがそうでない場合、どうすればよいですか?

編集1:

私が試したとき

graph = GraphAPI(request.facebook.user.oauth_token)
graph.post("me/namespace:action")

It showed me `OAuthError` 
Error Loc: C:\Python27\lib\site-packages\facepy\graph_api.py in _parse, line 274


graph = GraphAPI(request.facebook.user.oauth_token)
graph.post("me/namespace:action", "object type")

It showed me `TypeError`
loc: same as previous

編集2:

を使用する代わりにrequest.facebook.user.oauth_token、直接 my を使用するaccess tokenと、コードが機能しました。

graph = GraphAPI (my-hard-coded-access-token)
graph.post("me/feed", message = "working!")

しかし、私が試したとき

graph.post("me/news.reads", article="working")

It showed me error. 
4

2 に答える 2

1

オープン グラフ アクションを作成しました

me/feedそれなら使ってはいけない

OpenGraph 呼び出しは次のとおりです。

me/[app_namespace]:[action_type]?[object_type]=[OBJECT_URL]

したがって、同じことを達成するには、パスを次のように設定するだけですme/[app_namespace]:[action_type]

graph.post(
        path = 'me/[app_namespace]:[action_type]',
        [object_type] = '[OBJECT_URL]'
)

og_data呼び出しのパラメーターではありません。だからあなたobject_typeがそうなら、recipeそれは

graph.post(path, recipe)

使い続けたいならそうme/feedすべき

graph.post(path, link)

http://developers.facebook.com/docs/reference/api/user/#postsで説明されているとおり


そのようなカスタム読み取りアクションを実行することはできません。適切な呼び出しは

graph.post(
    path = 'me/news.reads',
    article = 'http://yourobjecturl/article.html'
)

ドキュメントhttp://developers.facebook.com/docs/opengraph/actions/builtin/#readをお読みください

于 2012-07-14T20:50:43.757 に答える
0

OAuthError文字列ではなくクラスのインスタンスを使用して Graph API クライアントを初期化しているため、 が返されます。

これを試して:

graph = GraphAPI(request.facebook.user.oauth_token.token)

graphまたは、 Fandjango のモデルのプロパティを使用して、事前に初期User化された Graph API クライアントのインスタンスを取得することもできます。

request.facebook.user.graph
于 2012-10-19T14:05:54.790 に答える