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

Я пытаюсь отправить сообщения на несколько страниц. Когда я отправляю простой текст, никаких проблем. Однако, когда я пытаюсь загрузить фотографию или даже ссылку, элемент отправляется в фид, но это касается раздела «Последние сообщения от других», а не самого канала.Facebook Graph API & django-facebook - размещение ссылок и фотографий на лентах страниц

Он отправляется как я, а не как страница. Есть ли что-то, что мне нужно сделать специально для публикации элемента в ленте страниц (как на странице) со ссылкой и/или фотографией?

ответ

0

Facebook Graph API PHP SDK posting on page as page

Нашел. Существует другой токен доступа для олицетворения страницы, чтобы отправить на страницу. Вы получаете это из/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') 

 Смежные вопросы

  • Нет связанных вопросов^_^