Доступ к общедоступным данным facebook через коалу

Я хочу получить общедоступную информацию facebook, такую ​​​​как

https://graph.facebook.com/http://www.google.com

когда я делаю

@graph = Koala::Facebook::API.new
@graph.get_object("http://www.google.com")

я получил

Koala::Facebook::AuthenticationError: type: OAuthException, code: 2500, message: Unknown path components: /www.google.com [HTTP 400]
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/koala-1.6.0/lib/koala/api/graph_api.rb:470:in `block in graph_call'

Почему это не работает? и зачем нужна аутентификация, если токен доступа не нужен для такого запроса?


person Nick Ginanto    schedule 04.08.2013    source источник


Ответы (2)


Вам нужно экранировать некоторые символы в URL-адресе, например:

@graph.get_object("http%3A%2F%2Fwww.google.com")

Или вы можете использовать метод CGI::escape, чтобы выполнить побег за вас.

@graph.get_object(CGI::escape("http://www.google.com"))
person James Holderness    schedule 10.08.2013

Как правило, код ошибки 2500 — «Отказано в доступе» (вам необходимо иметь токен доступа), но это сбивает с толку, поскольку вы пытаетесь получить доступ к общедоступной информации. Попробуйте использовать токен доступа к приложению при доступе к данным. Для создания APP access_token отправьте запрос GET на этот URL.

ПОЛУЧИТЬ https://graph.facebook.com/oauth/access_token? client_id=ВАШ_APP_ID &client_secret=ВАШ_APP_SECRET &grant_type=client_credentials

Я надеюсь, это поможет. В противном случае у меня есть еще несколько идей.

person Yervand Khalapyan    schedule 04.08.2013
comment
Я пробовал это с @g= Koala::Facebook::API.new(Koala::Facebook::OAuth.new(ENV['FACEBOOK_APP_ID'],ENV['FACEBOOK_SECRET']).get_app_access_token) все еще не работает - person Nick Ginanto; 05.08.2013