2013-07-23 64 views
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) 

我试图张贴到多页的供稿。当我发布简单的文字时,没有问题。但是,当我尝试上传照片甚至是链接时,该项目确实会发布到Feed,但是它是“其他人最近发布的帖子”部分,而不是页面Feed本身。Facebook图形API&django-facebook - 张贴链接和照片到页面供稿

它发布为我而不是页面。有什么我需要做一些特别的事情,以链接和/或照片的形式在页面提要(如页面)中发布项目?

回答

0

Facebook Graph API PHP SDK posting on page as page

找到它了。有一个不同的访问令牌用于模拟页面,以作为页面。你从/我/账户得到这些信息,并使用该标记作为页面发布。 更新的工作代码:

@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') 
相关问题