【问题标题】:How do I manage pages of a user that facebook authed on my site?如何管理 facebook 在我的网站上通过身份验证的用户的页面?
【发布时间】:2014-01-17 23:45:07
【问题描述】:

我有一个使用omniauth 到facebook auth 的应用程序。我还有一个用户访问令牌。我正在使用考拉访问 facebook graph api。但是,我不确定如何将我的用户访问令牌传递给 koala 以实际访问我的用户管理的 facebook 页面。

如何获取我的用户管理的页面并传递访问令牌来执行此操作?

【问题讨论】:

    标签: ruby-on-rails koala


    【解决方案1】:
    api = Koala::Facebook::API.new(access_token)
    
    pages = api.get_connections(user_id, "accounts")
    

    这将返回您的用户有权访问的页面集合,在每个页面内部都有一个“access_token”属性,该令牌是您需要用来管理该特定页面的令牌

    【讨论】:

      【解决方案2】:

      由于您使用omniauth 进行Facebook 身份验证,您可以在omniauth.rb 中定义提供者时添加scope: manage_pages

      Rails.application.config.middleware.use OmniAuth::Builder do
        provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], scope: 'publish_actions, email, manage_pages']
      end
      

      这将询问用户管理页面所需的权限。

      现在,当您获得许可时,使用 Koala 获取用户使用 Graph API 调用的页面列表

      koala = Koala::Facebook::API.new(@access_token)
      
      # retrieve collection fo all your managed pages: returns collection of hashes with page id, name, category, access token and permissions
      pages = @user_graph.get_connections('me', 'accounts')
      

      使用上一次调用结果中的access_token 属性。

      # get access token for first page
      first_page_token = pages.first['access_token']
      
      # or: retrieve access_token for a given page_id
      page_token = @user_graph.get_page_access_token(page_id)
      

      使用页面令牌作为页面进行身份验证并正常使用 Graph API

      @page_graph = Koala::Facebook::API.new(page_token)
      
      @page_graph.get_object('me') # I'm a page
      @page_graph.get_connection('me', 'feed') # the page's wall
      @page_graph.put_wall_post('post on page wall') # post as page, requires new publish_pages permission
      @page_graph.put_connections(page_id, 'feed', :message => message, :picture => picture_url, :link => link_url)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-12
        • 1970-01-01
        • 2015-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-21
        相关资源
        最近更新 更多