0
@facebook_required_lazy(scope=['manage_pages', 'publish_stream', 'photo_upload'])
def index(request):
    if request.method == 'POST':
        form = CPYPosterForm(request.POST)

        if form.is_valid():
            fb = require_persistent_graph(request)
            msg = form.cleaned_data['msg']
            pages = form.cleaned_data['pages']

            res = dict()
            for p in pages:
                try:
                    key = PAGE_CHOICES[p]
                except KeyError:
                    key = p
                res[key] = fb.set('{page_id}/feed'.format(page_id=p), message=msg)

複数ページのフィードに投稿しようとしています。簡単なテキストを投稿するときは問題ありません。ただし、写真やリンクをアップロードしようとすると、アイテムはフィードに投稿されますが、ページ フィード自体ではなく、「他のユーザーによる最近の投稿」セクションに投稿されます。

ページとしてではなく、私として投稿されます。リンクや写真を含むアイテムをページ フィード (ページとして) に投稿するために何か特別なことをする必要がありますか?

4

1 に答える 1

0

Facebook Graph API PHP SDK 投稿ページとしてのページ

それを見つけた。ページとして投稿するページを偽装するための別のアクセス トークンがあります。/me/accounts から取得し、そのトークンを使用してページとして投稿します。更新された作業コード:

@facebook_required_lazy(scope=['manage_pages', 'publish_stream', 'photo_upload'])
def index(request):
    if request.method == 'POST':
        form = CPYPosterForm(request.POST)

        if form.is_valid():
            fb = require_persistent_graph(request)
            msg = form.cleaned_data['msg']
            pages = form.cleaned_data['pages']

            me_accounts = fb.get('/me/accounts')
            access_token = None

            resp = dict()
            for p in pages:
                for d in me_accounts['data']:
                    if d['id'] == p:
                        access_token = d['access_token']
                try:
                    key = PAGE_CHOICES[p]
                except KeyError:
                    key = p

                openfb = OpenFacebook(access_token)
                resp[key] = openfb.set('{page_id}/feed'.format(page_id=p), message=msg, link='http://www.espn.com')
于 2013-07-23T21:02:06.963 に答える