私は、クラス プロジェクトのリアルタイム instagram API に取り組んでいます。データを mongoDB にプッシュするサブスクリプションとコールバック スクリプトがあります。すべてがうまく機能し、更新を受け取りますが、$data 配列はすべて空です。アップデートでデータが返されない理由がわかりません。どんな助けでも大歓迎です。これが私のコードで、mongoDB の結果のスクリーンショットを添付しました。
***購読スクリプト
<?php
//Subscribe
//ALL YOUR IMPORTANT API INFO
$client_id = 'xxxxxxxxxxxxxxxxxxxx';
$client_secret = 'xxxxxxxxxxxxxxxxxxxxxx';
$object = 'geography';
$lat = '39.73';
$lng = '-104.98';
$radius = '5000';
$aspect = 'media';
$verify_token='';
$callback_url = 'http://www.callback.com';
//SETTING UP THE CURL SETTINGS
$attachment = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'object' => $object,
'lat' => $lat,
'lng' => $lng,
'radius' => $radius,
'aspect' => $aspect,
'verify_token' => $verify_token,
'callback_url'=>$callback_url
);
//URL TO THE INSTAGRAM API FUNCTION
$url = "https://api.instagram.com/v1/subscriptions/";
$ch = curl_init();
//EXECUTE THE CURL...
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //to suppress the curl output
$result = curl_exec($ch);
curl_close ($ch);
//PRINT THE RESULTS OF THE SUBSCRIPTION, IF ALL GOES WELL YOULL SEE A 200
print_r($result);
?>
* *コールバック スクリプト
<?php
//Callback
if (isset ($_GET['hub_challenge'])){
echo $_GET['hub_challenge'];
}
else {
//database config
$dbhost = '@myserver';
$dbname = 'test';
//connect to database
$m = new Mongo("mongodb://$dbhost");
$db = $m->$dbname;
//select the collection
$collection = $db->instagram;
//This is an update
$myString = file_get_contents('php://input');
$ALL = date("F j, Y, g:i a")." ".$myString."\r\n";
file_put_contents('activity1.log', $ALL, FILE_APPEND);
$answer = json_decode($myString);
$collection->save($answer);
}
?>
RoboMongo を開くと、受け取ったキーはオブジェクト ID、変更されたアスペクト、オブジェクト、時間、サブスクリプション ID です。次に、常に空のデータ配列があります。これから情報を得る方法がわかりません。