我正在努力了解如何获取查找特定标签的 Instagram 订阅的结果。最终,我想做的是,当图像发布时带有我正在寻找的标签时,将链接添加到照片以及数据库的用户名中。
我能够毫无问题地创建我的订阅,但现在我不确定如何从订阅中获取 POST 信息。
使用两个文件...subscribe.php 和 callback.php
subscribe.php
<?php
//ALL YOUR IMPORTANT API INFO
$client_id = 'XXX';
$client_secret = 'XXX';
$object = 'tag';
$object_id = 'taglookingfor';
$aspect = 'media';
$verify_token='';
$callback_url = '(full URL here)/callback.php';
//SETTING UP THE CURL SETTINGS...
$attachment = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'object' => $object,
'object_id' => $object_id,
'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 YOU'LL SEE A 200
print_r($result);
?>
回调.php
<?php
if (isset ($_GET['hub_challenge'])){
echo $_GET['hub_challenge'];
}
//This is an update
else {
$myString = file_get_contents('php://input');
$answer = json_decode($myString);
echo $answer;
}
?>
在我的 callback.php 中,我试图回显 json_decode 的结果...但这也引出了一个问题,我将如何捕获该回显?抱歉,这可能真的很愚蠢,但我如何捕捉 callback.php 脚本被带有我正在寻找的特定标签的新图像触发的时刻。正如我提到的,我希望做的是获取 $answer 中的信息并将一些信息插入数据库。
我是新手,所以非常感谢任何帮助。 一百万!
最佳答案
我感受到了你的痛苦。他们的 API 不是最容易使用的,他们的文档也有很多不足之处。也就是说,这就是发生的事情:
- 您向订阅 API 端点发送请求
- Instagram 向您的 callback.php 文件发送响应
- 响应包含一个 hub_challenge 参数,您需要回显该参数以确认您的订阅
- 如果成功,您将在您的 callback.php 中收到一 strip 有您新订阅的 subscriptionid 的帖子
- 每次您收到 callback.php 的帖子时,您都需要向 Instagram 发出请求,以获取与您的标签匹配的最新媒体。
关于php - Instagram API订阅,如何获取帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469924/