[英]How to search Facebook Graph API with multiple words php-sdk
我正在使用 Facebook php sdk v3.2.0,並且在使用 AND 查詢(例如:watermelon+banana)搜索帖子時只返回一個空數據集。 我目前正在從命令行運行這個腳本,如果這有什么不同的話:
$facebook = new Facebook(array(
'appId' => 'MY_APP_ID',
'secret' => 'MY_SECRET',
));
$q = "watermelon+banana" ;
$search = $facebook->api('/search?q='.$q.'&type=post&limit=10');
foreach ($search as $key=>$value) {
foreach ($value as $fkey=>$fvalue) {
print_r ($fvalue);
}
}
當我在瀏覽器中訪問http://graph.facebook.com/search?q=watermelon+banana&type=post時,我可以看到結果。 此外,在查詢 $q="watermelon" 時它確實有效。 我在不同的機器上試過這個,但也沒有骰子。 有誰知道發生了什么?
當您不需要這樣做時,您正在編碼 + 。
所以你在 PHP 中的查詢實際上是http://graph.facebook.com/search?q=watermelon%2Bbanana&type=post&limit=10
省略urlencode
函數
$q = "watermelon+banana" ;
$search = $facebook->api('/search?q='.$q.'&type=post&limit=10');
所以完整的代碼看起來像
<?php
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_SECRET',
));
$q = "watermelon+banana" ;
$search = $facebook->api('/search?q='.$q.'&type=post&limit=10');
foreach ($search as $key=>$value) {
foreach ($value as $fkey=>$fvalue) {
print_r ($fvalue);
}
}
?>
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$config = array(
'appId' => 'xxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxx',
'allowSignedRequest' => false // opt`enter code here`ional but should be set to false for non-canvas apps
);
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
$query = urlencode('india+China');
$type = 'post';
$retrive = $facebook->api('/search?q='.$query.'&type='.$type.'&limit=10');
$string= json_encode($retrive );
$json_a = json_decode($string, true);
$json_o = json_decode($string);
foreach($json_o->data as $p)
{
$text = $p->message;
$username=$p->from->name;
$id=$p->from->id;
echo "<table border=1px>
<tr>
<td>
<td>$id</td>
<td>$username</td>
<td>$text</td>
</tr>
</table>";
}`enter code here`
您的代碼現在應該可以正常工作(已進行所有必要的更改):
$facebook = new Facebook(array(
'appId' => 'xxxxx',
'secret' => 'xxxxx',
));
$q = "watermelon banana"; // dont need to urlencode the string
$q = str_replace(" ","+",$q); // this will replace all occurances of spaces with +
$search = $facebook->api('/search?q='.$q.'&type=post&limit=10');
foreach ($search as $key=>$value) {
foreach ($value as $fkey=>$fvalue) {
print_r ($fvalue);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.