2016-02-08 2 views
0

В настоящее время у меня есть приложение для рельсов. Если пользователь аутентифицирован с facebook, он может опубликовать что-то в моем приложении. После того, как сообщение было сохранено, мое приложение rails разместит сообщение пользователя в моей группе facebook. Является ли это возможным?Сообщение fb_graph в группе facebook как член группы от rails app

Я использую драгоценный камень fb_graph. И после сообщения пользователя я сделал ответный звонок after_create на пост в facebook. Вот код обратного вызова:

def post_story_to_facebook 
    if self.user.authentications.pluck(:provider).include?('facebook') 
     page = FbGraph::Group.new('ct.dhk.group') # group name 
     # where should I declare the user who is posting? 
     page.feed!(
      :message => 'Updating via FbGraph', 
      :link => 'https://domain.tld', 
      :name => 'PageName', 
      :description => 'This is a test post to be deleted' 
    ) 
    end 
    end 

Указанный выше метод не работает, и я не знаю, как отправить сообщение от имени пользователя?

ответ

1

У нас был аналогичный проверенный на работоспособность код. Вам необходимо сохранить facebook_user_access_token в вашей модели пользователя (если у вас его нет, добавьте новый атрибут и обновите его каждый раз, когда пользователь будет проходить аутентификацию через OAuth или только если токен будет обновлен). См. Следующее.

post = Post.find(1) # your post 
facebook_page_id = '1234567890' # your Facebook group id 
facebook_user_access_token = current_user.facebook_user_access_token # the current user's Facebook user access token 

page = FbGraph::Page.new(facebook_page_id) 
facebook_page_access_token = page.get_access_token(access_token: facebook_user_access_token) 

me = FbGraph::User.me(facebook_page_access_token) 

me.feed!(
    message: post.title, 
    link: post_url(post), 
    description: post.content, 
    picture: post.main_image.url 
) 

UPDATE:

Не проверял, но, глядя на this и this

предлагает следующее может работать:

group = FbGraph::Group.new(GROUP_ID) 
group.feed!({ 
    access_token: USER_ACCESS_TOKEN_WITH_PROPER_PERMISSIONS, 
    message: post.content 
}) 

К сожалению, я еще не есть время, чтобы проверить вещи. Можете ли вы попробовать, если это будет работать?

+0

Группа не имеет атрибута llike 'access_token', поэтому он бросает ошибку:' OAuthException :: (# 100) Пробовал доступ к несуществующему полю (access_token) по типу узла (группа) ' – Emu

+0

@Emu, обновил мой ответ , Можете ли вы попробовать, если он будет работать? –

+0

Что вы подразумеваете под 'USER_ACCESS_TOKEN_WITH_PROPER_PERMISSIONS'? Новая ошибка: «Пользователь не разрешил приложению выполнять это действие». Итак, какие разрешения я должен включить? – Emu