首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >instagram订阅标签对实时照片更新的步骤

instagram订阅标签对实时照片更新的步骤
EN

Stack Overflow用户
提问于 2015-06-15 18:31:16
回答 2查看 467关注 0票数 0

我是instagram的新人,根据实时照片更新。不了解流程,有没有人能告诉我怎么用php创建回调URL?从注册客户端的重定向uri需要链接到此回调URL?下面的代码是我如何处理回调URL的

代码语言:javascript
复制
$checkin_url = "https://api.instagram.com/v1/subscriptions/";

//$instagram[] for client_id, client_secret, redirect_uri
$parameters = array(
    'client_id' => $instagram['client_id'],
    'client_secret' => $instagram['client_secret'],
    'object' => 'tag',
    'aspect' => 'media',
    'object_id' => 'nofilter',
    'callback_url' =>  $instagram['redirect_uri']
);

$curl = curl_init($checkin_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $parameters);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);

print($response);
EN

回答 2

Stack Overflow用户

发布于 2015-06-15 23:53:06

您错过了订阅过程中的一个重要步骤(It's in the doc):

当您使用上面的信息发布以创建新订阅时,我们会同时向您的回调URL...为了验证订阅,您的服务器必须仅使用hub.challenge参数响应GET请求:

换句话说,当您创建订阅时,它们会向您的回调URI发送一个带有一些参数的GET请求,而您必须返回hub.challenge参数(在PHP中为hub_challenge,因为使用PHP时,带有.的参数将转换为_)。

因此,在回调URI中,您必须测试请求方法。如果是GET,请执行以下操作:

代码语言:javascript
复制
exit($_GET['hub_challenge']);

如果是POST,则是订阅更新,因此必须对原始正文进行json解码以获得数据,如文档‘:)中所述。

票数 0
EN

Stack Overflow用户

发布于 2015-06-17 16:22:50

嗨,托马斯,我收到一个错误,不知道为什么它不能工作...

无效字符串(92) "{"meta":{"error_type":"APISubscriptionError",“

”:400,“error_message”:“无效响应”}}“

来自订阅:

代码语言:javascript
复制
$callback_url = "http://myhost.com/auth/instagram/callback";

    $params = array(
        'client_id' => $ig_client_id,
        'client_secret' => $ig_client_secret,
        'aspect' => "media",
        'object' => "tag",
        'object_id' => "greentea",
        'callback_url' => $callback_url
    );

    $defaults = array(
        CURLOPT_URL => 'https://api.instagram.com/v1/subscriptions/',
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $params,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => array('Accept: application/json')
    );
    $ch = curl_init();
    curl_setopt_array($ch, $defaults);
    $jsonData = curl_exec($ch);
    curl_close($ch);
    var_dump($jsonData);

从回调中:

代码语言:javascript
复制
if (isset ($_GET['hub_challenge'])){
    exit($_GET['hub_challenge']);
}
else {
    $rawdata = file_get_contents('php://input');
    $decode_data = json_decode($rawdata);
    echo $decode_data;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30842925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档