2015-01-20 4 views
3

Я пытаюсь выяснить, как подписаться на обновления в реальном времени на странице У меня есть access_token для (но не страницы моего приложения). Я использую камень Коала и все, кажется, хорошо, но я не могу показаться, чтобы выяснить, как определить, какие страницы я хочу подписаться на:Как подписаться на обновления в реальном времени в реальном времени для разговоров определенной страницы

@updates = Koala::Facebook::RealtimeUpdates.new(:app_id => YOUR_APP_ID, :app_access_token => YOUR_ACCESS_TOKEN) 
@updates.subscribe("page", "conversations", YOUR_CALLBACK_URL, YOUR_VERIFY_TOKEN) 

выше, является код Koala говорит реализовать, но это Безразлично «Не говорите нигде о том, как выбрать, на какой странице мы подписываемся, или куда вставить page_access_token.

Даже если смотреть на facebook example, ему некуда войти в токен доступа к странице.

Где я могу указать, на какую страницу facebook я хочу подписаться?

EDIT: Когда вы подписываетесь на «страницу» «беседы», на какую страницу вы подписываетесь? Все они связаны с app_access_token? Как узнать, какие страницы связаны с app_access_token?

ответ

2

В примере вы связаны, есть некоторый код, чтобы указать страницу маркера доступа:

Посмотрите на нижнем примере PHP скрипт:

$session = new FacebookSession('<PAGE_ACCESS_TOKEN>'); 

Для установочные токены доступа к странице, посмотрите на

+0

Да, но как передать токен доступа к странице на @ updates.subscribe (как показано в графе koala) так: @ updates.subscribe («пользователь», «first_name, last_name», YOUR_CALLBACK_URL, YOUR_VERIFY_TOKEN) –

+0

ничто в обновлении в реальном времени koala не просит токена ... я так смущен –

+0

Что я пытаюсь сделать, это подписаться на разговоры другой страницы (а не на мою собственную страницу приложения), и у меня есть токен доступа к этой странице. –

0

Вот как я Koala реализован в мое приложение, и я получаю разговоре страницы (не через RealtimeUpdates) успешно. Вот как я это сделал -

Я добавил следующее к моему Gemfile

gem 'omniauth-facebook' 
gem 'koala' 

Я создал файл YAML учетные данные facebook -

development: 
    app_id: <APP ID> 
    secret: <APP Secret> 

Я добавил следующее initializers под config/initializers

1.Facebook инициализатор как facebook.rb -

FACEBOOK_CONFIG = YAML.load_file("#{::Rails.root}/config/facebook.yml")[::Rails.env] 

2.Omniauth инициализатор в omniauth.rb -

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook, FACEBOOK_CONFIG['app_id'], FACEBOOK_CONFIG['secret'], {: scope => 'read_mailbox'} 
end 

разрешения read_mailbox является ключевым фактором.Если вы не уверены, если у вас есть read_mailbox разрешение, вы, возможно, придется запросить его под Status and Review вкладку под странице вашего приложения (см скриншот ниже) -

enter image description here

Даже если я не использую RealTimeUpdates, Я делаю что-то вроде следующего, чтобы разговоры -

def get_conversations(page_id) 
    access_token ||= Koala::Facebook::OAuth.new(FACEBOOK_CONFIG['app_id'], FACEBOOK['secret']).get_app_access_token 

    graph = Koala::Facebook::GraphAPI.new(access_token) 
    @fb_conversations = graph.get_object(page_id + '/conversations') 
end 

Попробуйте поразить Graph API explorer с {page_id}/conversations с доступом лексем и посмотреть, если вы получаете сообщение об ошибке.

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