【问题标题】:Instagram Like API. Posting a like through curl and phpInstagram 喜欢 API。通过 curl 和 php 点赞
【发布时间】:2014-05-14 01:53:03
【问题描述】:

我想弄清楚如何为 Instagram 点赞。单击此处查看我的网站以测试此 API。

http://ewands.no-ip.biz/Intern/guangjian/instagram/

这是我第一次尝试 Instagram API。谷歌它,但没有找到关于这个主题的教程。下面是我的 PHP 代码。

获取媒体 ID:

$api = file_get_contents("http://api.instagram.com/oembed?url=http://instagram.com/p/n5DyHnKWoo");      
$apiObj = json_decode($api,true);      
$media_id = $apiObj['media_id'];

点赞按钮后,URL变成http://ewands.no-ip.biz/Intern/guangjian/instagram?api=like,所以我们从PHP中运行如下代码:

if($_GET['api'] == 'like'){

header('location:https://api.instagram.com/oauth/authorize/?client_id=3548d38f15b54dbfb744bf0705fa8198&redirect_uri=http://ewands.no-ip.biz/intern/guangjian/instagram?function=like&response_type=code');

以上将页面重定向到http://ewands.no-ip.biz/intern/guangjian/instagram/?function=like&code=3b50fdbcd0184f979b31f5b0d12354c4

} 
if($_GET['function'] == 'like') {

    $code = $_GET['code'];
    $url = "https://api.instagram.com/oauth/access_token";
    $access_token_parameters = array(
        'client_id'                =>     '3548d38f15b54dbfb744bf0705fa8198',
        'client_secret'            =>     '97e12a30416d4436a52107d0d1820e91',
        'grant_type'               =>     'authorization_code',
        'redirect_uri'             =>     'http://ewands.no-ip.biz/intern/guangjian/instagram?function=like', 
        'code'                     =>     $code
        );
    $curl = curl_init($url);  
    curl_setopt($curl,CURLOPT_POST,true);   
    curl_setopt($curl,CURLOPT_POSTFIELDS,$access_token_parameters);   
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  
    $result = curl_exec($curl);   
    curl_close($curl); 

    $arr = json_decode($result,true);
    $token = $arr['access_token'];

我已经测试过我能够获得令牌,到目前为止一切顺利,然后下一部分不起作用,我只是在试试运气,因为我不熟悉 curl 并且那里没有教程谷歌搜索 Instagram API 教程。

    $url = 'https://api.instagram.com/v1/media/'.$media_id.'/likes';

    $curl = curl_init($url);
    curl_setopt($curl,CURLOPT_POST,true);
    curl_setopt($curl,CURLOPT_POSTFIELDS,'access_token='.$token);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    $result = curl_exec($curl);

}

【问题讨论】:

  • 你有没有print_r() out $result(你的代码的最后一个sn-p)?它应该给你一个明确的信息或错误什么是错的!
  • @AdamAzad 是的,没有显示任何内容。
  • @JianShort 您使用的 media_id 是什么?

标签: api curl instagram


【解决方案1】:

Instagram 在令牌返回中返回一个 #,这使得它对于 $_GET 毫无用处。 令牌应该只使用一个。 您从 URI 手动复制它,然后在您的代码中相应地使用它。

这是非常不安全的。 你想多了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多