我想弄清楚如何为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'];
单击like按钮后,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< - Instagram服务器添加了随机代码,接下来,使用curl获取访问令牌:
}
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'];
我已经测试过我能够获得令牌,到目前为止一直很好,然后下一部分不起作用,我只是试着运气,因为我不熟悉卷曲而且没有教程从那里谷歌搜索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);
}
答案 0 :(得分:0)
Instagram在令牌返回中返回一个#,这使得$ _GET无效。 该令牌仅应该使用一个。 您可以从URI手动复制它,然后在代码中相应地使用它。
这是非常不安全的。 你在想它。