2013-08-04 3 views
2

Je veux obtenir de l'information publique facebook tels queAccès facebook données publiques via koala

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

quand je fais

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

je reçois

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' 

Pourquoi pas ce travail ? et pourquoi l'authentification est-elle nécessaire si un jeton d'accès n'est pas nécessaire pour une telle requête?

Répondre

1

Vous devez échapper quelques-uns des personnages dans l'URL, comme ceci:

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

Ou vous pouvez utiliser la méthode CGI::escape pour faire la fuite pour vous.

@graph.get_object(CGI::escape("http://www.google.com")) 
+0

qui fonctionne très bien! –

0

Généralement, le code d'erreur 2500 est refusé (vous devez disposer d'un jeton d'accès), mais cela prête à confusion lorsque vous essayez d'accéder à des informations publiques. Essayez d'utiliser un jeton d'accès à l'application lors de l'accès aux données. Pour Génération d'un APP access_token envoyer une requête GET à cette URL

GET https://graph.facebook.com/oauth/access_token? client_id = YOUR_APP_ID & client_secret = YOUR_APP_SECRET & grant_type = client_credentials

J'espère que cela vous aidera. Sinon, j'ai d'autres idées.

+0

J'ai essayé avec '@ g = Koala :: Facebook :: API.new (Koala :: Facebook :: OAuth.new (ENV [ 'FACEBOOK_APP_ID'], ENV [ 'FACEBOOK_SECRET']). Get_app_access_token) 'ne fonctionne toujours pas –

Questions connexes