скручивание запроса в Facebook FQL требует авторизации? - PullRequest
0 голосов
/ 30 января 2011

Я использовал curl для запроса FQL в Facebook, и это произошло:

> curl 'https://api.facebook.com/method/fql.query' -d "query=SELECT+now()+FROM+user+WHERE+name='Barry Carter';" 

<?xml version="1.0" encoding="UTF-8"?> 
<error_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd"> 
  <error_code>102</error_code> 
  <error_msg>Session key invalid or no longer valid</error_msg> 
  <request_args list="true"> 
    <arg> 
      <key>method</key> 
      <value>fql.query</value> 
    </arg> 
    <arg> 
      <key>query</key> 
      <value>SELECT now() FROM user WHERE name='Barry Carter';</value> 
    </arg> 
  </request_args> 
</error_response> 

Нужно ли проходить проверку подлинности даже для поиска пользователей?На сайте вы можете сделать это без аутентификации?

Если мне нужна аутентификация, как мне ее получить?Я прочитал http://developers.facebook.com/docs/authentication но нужно ли все это для простого вызова curl?Если так, что я должен сделать, чтобы получить токен аутентификации?Нужно ли хранить куки / etc (используя флаги curl -b и -c?).

Этот вопрос похож на API Facebook - fql_query, недопустимая сессия , но я использую прямой завиток, а не PHP

Я понимаю, что запрос должен быть GET, а не POST, но я уверен, что это не проблема.

1 Ответ

1 голос
/ 30 января 2011

Да, вам понадобится токен авторизации практически для любого запроса, который вы выполняете.

Получить его вручную не сложно, если вы просто экспериментируете.Самый простой способ сделать это вручную - это следовать разделу «поток на стороне клиента» на странице документа аутентификации, на которую вы ссылаетесь, перейдя по указанному URL в вашем браузере, и использовать http://www.facebook.com/connect/login_success.html в качестве целевого URL (это простофиктивная страница на facebook.com, так что она гарантированно пропустит вас), а затем захватите токен доступа из адресной строки.

...