2010-08-03 4 views
4

J'essaie d'obtenir une requête facebook fql à travailler en utilisant le navigateur, j'ai un jeton oauth valide (je peux faire des appels graphique api avec elle).Facebook FQL renvoie <fql_query_response list = "true" />

Voici l'URL que j'ai essayé:

https://api.facebook.com/method/fql.query?query=SELECT metric, value FROM insights WHERE object_id=89192912655 AND end_time=1280430050 AND period=86400 AND metric='page_fans'&access_token=? 

J'ai aussi essayé d'exécuter la requête FQL par un codeur sql premier:

https://api.facebook.com/method/fql.query?query=SELECT%20metric%2C%20value%20FROM%20insights%20WHERE%20object_id%3D89192912655%20AND%20end_time%3D1280430050%20AND%20period%3D86400%20AND%20metric%3D'page_fans'&access_token=? 

J'ai essayé quelques autres mesures, je peux obtenir les mesures via le graphique api aussi, donc je sais qu'ils sont là.

Im sûr que je fais quelque chose de stupide, mais je suis resté perplexe sur cela pendant un moment maintenant! Chaque appel renvoie ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true"/> 

Peut-être que mes dates sont un problème, j'utiliser cela pour obtenir la date: (rubis)

t = Time.now 
=> Tue Aug 03 15:00:50 -0400 2010 
>> t = t - 5.days 
=> Thu Jul 29 15:00:50 -0400 2010 
>> t.to_i 
=> 1280430050 

des idées?

+0

Êtes-vous sûr que 'table insights' existe? Je ne le vois pas dans l'API. – serg

+0

cet exemple le réclame: http://wiki.developers.facebook.com/index.php/Insights_%28FQL%29 – Joelio

+0

Si vous essayez juste d'obtenir le nombre de fans, regardez peut-être cette question: http: // stackoverflow. com/questions/3231099/how-do-one-retrieve-the-fan-count-for-a-facebook-application-page-using-the-gra – serg

Répondre

5

Hé les gars, nous avons confirmé ce bug. Cela est dû au fait que end_time doit être aligné avec les délimiteurs de jour dans PST pour que la table Insights renvoie toutes les données. Pour résoudre ce problème, nous avons introduit deux fonctions personnalisées que vous pouvez utiliser pour interroger la table aperçu:

  1. end_time_date(): accepter DATE sous forme de chaîne (par exemple, « 2010-08-01 »)
  2. période() : accepter « durée de vie », « jour », « semaine » et « mois »

Par exemple, vous pouvez maintenant interroger la table des idées en utilisant:

SELECT metric, value FROM insights 
WHERE object_id = YOUR_APP_ID AND 
     metric = 'application_active_users' AND 
     end_time = end_time_date('2010-09-01') AND 
     period = period('day'); 

Nous documenterons sur ces fonctions bientôt, désolé pour tout e inconvénient!

P.S. Si vous ne souhaitez pas utiliser la fonction end_time_date(), assurez-vous que l'horodatage end_time de votre requête est aligné avec les délimiteurs de jour dans PST.

Merci!

Facebook Insights équipe

+0

cela fonctionne maintenant pour moi, assurez-vous que la métrique que vous recherchez utilise une période supportée. Voici une liste des périodes prises en charge: http://developers.facebook.com/docs/reference/fql/insights – Joelio

0

Si vous voulez connaître le nombre de fans une page facebook, utilisez le code quelque chose comme:

https://graph.facebook.com/cocacola 

La réponse contient une propriété fan_count.

+1

Roger, merci, je sais que je peux obtenir les données là-bas, je veux juste voir que fql travaille pour d'autres raisons, cette est un élément de données im sûr devrait être là, ainsi utilisé comme un eample. – Joelio

1

La réponse que vous voyez est une réponse vide qui ne signifie pas nécessairement qu'il n'y a pas de données métriques disponibles. Quelques idées qui pourraient causer ceci:

  • Utilisez-vous un jeton d'accès utilisateur? Si oui, l'utilisateur possède-t-il la page? L'autorisation étendue 'read_insights' est-elle accordée pour le jeton utilisateur/accès? Que diriez-vous de 'offline_access'?
  • Les besoins de fin de session doivent être spécifiés comme minuit, heure du Pacifique.
  • Les périodes valides sont 86400, 604800, 2592000 (jour, semaine, mois)
  • L'interrogation de la statistique 'page_fan_adds' donne-t-elle des résultats significatifs pour une période donnée?

Bien que je ne l'ai pas travaillé avec la table des idées, travailler avec FQL Facebook m'a appris à ne pas attendre les messages d'erreur, les codes d'erreur, mais essayez de suivre la documentation (le cas échéant), puis expérimenter avec elle ...

Quant à la date, utilisez l'extrait suivant ruby ​​pour minuit, aujourd'hui:

Date.new(2010,9,14).to_time.to_i 

Je trouve également ce qui suit sur la page de documentation de l'API Graph:

Impersonation

Vous pouvez usurper l'identité pages par vos utilisateurs administrés en demandant la "manage_pages" autorisation prolongée.

Une fois qu'un utilisateur a accordé à votre application l'autorisation "manage_pages", la connexion "accounts" génère une propriété access_token supplémentaire pour chaque page administrée par l'utilisateur actuel. Ces access_tokens peuvent être utilisés pour effectuer des appels au nom d'une page. Les autorisations accordées par un utilisateur à votre application seront désormais également applicables à leurs pages. (source)

Avez-vous essayé de demander cette autorisation et utiliser les métadonnées & = 1 dans une requête API graphique pour obtenir le jeton d'accès pour chaque compte?

+0

Merci, dans mon cas, j'ai maintenant confirmé que tous les 4 d'entre eux sont ok, mais je suis d'accord c'est probablement vrai dans la plupart des cas. Thats pour les exemples clairs – Joelio

+0

+1 pour avoir suggéré de vérifier la permission prolongée, a été soulagé d'apprendre pourquoi mon application échouait :). – Dr1Ku

0

Je ne suis pas sûr que la date soit correcte. voulez-vous vraiment que la date soit un entier? Habituellement SQL prend dates db format, ainsi formater vous pouvez utiliser:

Date.new(2010,9,14).to_s(:db) 
(Time.now - 5.days).to_s(:db) 
# or even better: 
5.days.ago.to_s(:db)