[英]Facebook PHP SDK FQL not working
我有一个Facebook应用程序,可以显示朋友在Facebook上创建的所有事件的计数。 我使用FQL返回数字。 直到2月1日,它都可以正常工作,并且我想由于本月的滚动更改而停止了工作,但是我无法在文档中找到有关FQL协议的任何信息。 这是以前的工作方式:
$timestamp = time(); // Get current Unix time
$iso8601 = date('c', $timestamp); // Convert unix time to ISO8601
// FQL Multiquery
$fql_query = '{"allFriends":"SELECT+uid2+FROM+friend+WHERE+uid1=me()",'
.'"allEvents":"SELECT+eid+FROM+event_member+WHERE+uid+IN+(SELECT+uid2+FROM+#allFriends)+AND+start_time>=\''.$iso8601.'\'",'
.'"creators":"SELECT+creator+FROM+event+WHERE+eid+IN+(SELECT+eid+FROM+#allEvents)"}'
. '&access_token=' . $access_token;
// Get FQL through Graph API call
$fql = $facebook->api('/fql?q=' . $fql_query);
但是现在脚本运行时,我收到此异常:
FacebookApiException:OAuthException:(#601)分析器错误:位置0处出现意外的“ {”。
我应该改变些什么来解决它?
任何帮助将不胜感激
好吧,我从来没有想过如何解决问题中的多查询,但是,如果有人遇到相同的问题,我就尝试了一种解决方法。 我必须进行两个单独的fql调用,并使用输出来完成任务。 这是代码:
$timestamp = time(); // Get current Unix time
$iso8601 = date('c', $timestamp); // Convert unix time to ISO8601
// FQL Queries
//Select Events created by user's Friends
$fql_query = 'SELECT+creator+FROM+event+WHERE+eid+IN+' .
'(SELECT+eid+FROM+event_member+WHERE+start_time>=\'' .
$iso8601.'\'+AND+uid+IN+(SELECT+uid2+FROM+friend+WHERE+uid1=me()))' .
&access_token=' . $access_token;
$fql = $facebook->api('/fql?q=' . $fql_query);
// Get friend_count from user table
$fql_query2 = 'SELECT+friend_count+FROM+user+WHERE+uid=me()' .
&access_token=' . $access_token;
$fql2 = $facebook->api('/fql?q=' . $fql_query2);
我知道这不是很有效,而且肯定很丑陋,因此,如果有人可以解决我的原始问题,我很乐意接受该答案。
罗伯特
这对我有用:
$fql = 'SELECT current_location FROM user WHERE uid = me()';
$result = client->api('/fql', 'GET', ['q' => $fql, 'access_token' => 'access-token-here']);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.