Php FQL-应用程序请求表

Php FQL-应用程序请求表,php,facebook,Php,Facebook,我正在使用apprequest表获取invite-sender uid,但结果得到的是一个空数组 // Run fql query $params = array( 'method' => 'fql.query', 'query' => "SELECT request_id, app_id, recipient_uid, sender_uid FROM apprequest WHERE app_id = 2342343

我正在使用apprequest表获取invite-sender uid,但结果得到的是一个空数组

  // Run fql query
      $params = array(
        'method' => 'fql.query',
        'query' => "SELECT request_id, app_id, recipient_uid, sender_uid FROM apprequest   
      WHERE app_id = 234234324324324 and request_id =".$request_id,
    );

    $result = $facebook->api($params);
我假设您的access\u token-code位于一个变量中,您需要这个变量来运行应用程序,只需用这个变量替换$yourAccessTokenVar即可


编辑:顺便说一下,你的数组中逗号太多了。

我想我已经找到了你问题的答案。在文件中的列表中,说明如下:

app_id:用于发送请求的应用的id。注意:按应用程序id编制索引时,还必须指定收件人id

-及-

recipient\u uid:接收请求的用户的ID。注意:按收件人id编制索引时,还必须指定应用程序id

当我尝试执行您的查询时,收到以下错误:

您的查询当前为:

从apprequest中选择request\u id、app\u id、recipient\u uid、sender\u uid,其中app\u id=23424324,request\u id=.$request\u id

您会注意到,您没有遵守这些规则,因为您在WHERE子句中指定了“app\u id”,但没有“recipient\u uid”


尝试在未指定应用程序id的情况下执行查询。

这对我有效:

void FacebookManager::GetRequests()
{
    FBRequest *fql = [FBRequest requestForGraphPath:@"fql"];
    [fql.parameters setObject:@"SELECT request_id, app_id, recipient_uid FROM apprequest WHERE app_id = <your app id> AND recipient_uid = <your fbid>"
                       forKey:@"q"];

    FBRequestConnection* rc = [fql startWithCompletionHandler:^(FBRequestConnection *connection,
                                      id result,
                                      NSError *error) {
        if (result) {
            NSLog(@"result:%@", result);
        }
    }];
}

这将为我提供一个写入调试输出窗口的json数组。

尝试包括您的访问令牌?OptimuScime:在何处添加访问令牌以及如何获取访问令牌如果您使用PHP SDK和$facebook->api,则无需处理访问令牌;方法你是在授权应用程序之前还是之后这样做的?因为用户使用的是Facebook PHP SDK,所以这是自动处理的,我相信在没有看到你的代码的情况下很难判断。介意把你使用新Facebook的代码部分贴出来;在你的剧本里?把它贴在或者别的什么东西上别忘了检查你的私人信息抱歉不清楚,这是我需要的认证部分;如果您使用的是PHPSDK和$facebook->api,则不需要处理access_令牌;方法它是由SDK自动处理的。您仍然没有包含带有access\u令牌的部件。不知道你在哪里有。我可以用PHPSDK检查一个示例。您是否确保您的查询确实返回了一些内容?尝试使用沙箱:我希望邀请发件人uid显示我是a,向b发送请求。我需要uid。访问令牌在哪里facebook@user1010611抱歉,我搞错了。请看我修改过的答案请看这个修改过的答案
"message": "(#604) Your statement is not indexable. The WHERE clause must contain an indexable column. Such columns are marked with * in the tables linked from http://developers.facebook.com/docs/reference/fql ",
void FacebookManager::GetRequests()
{
    FBRequest *fql = [FBRequest requestForGraphPath:@"fql"];
    [fql.parameters setObject:@"SELECT request_id, app_id, recipient_uid FROM apprequest WHERE app_id = <your app id> AND recipient_uid = <your fbid>"
                       forKey:@"q"];

    FBRequestConnection* rc = [fql startWithCompletionHandler:^(FBRequestConnection *connection,
                                      id result,
                                      NSError *error) {
        if (result) {
            NSLog(@"result:%@", result);
        }
    }];
}