1

私は Facebook php SDK v3.2.0 を使用していますが、スイカ + バナナのような AND クエリを使用して投稿を検索すると、空のデータ セットしか返されません。現在、コマンドラインからこのスクリプトを実行していますが、違いがある場合は次のようになります。

$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" をクエリすると機能します。私はこれを別のマシンで試しましたが、ダイスもありませんでした。誰が何が起こっているのか知っていますか?

4

3 に答える 3

1

必要のないときに + をエンコードしています。

したがって、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);
    }
}

?>
于 2012-11-27T11:40:56.317 に答える
1
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`
于 2013-11-22T10:49:38.430 に答える
0

コードは正常に動作するはずです (必要な変更がすべて行われています)。

$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);
  }
}
于 2012-11-27T11:36:14.207 に答える