使用 Oauth2 在 Instagram 上发布图片 - PHP

Posted

技术标签:

【中文标题】使用 Oauth2 在 Instagram 上发布图片 - PHP【英文标题】:Post an image on instagram using Oauth2 - PHP 【发布时间】:2017-03-23 07:16:52 【问题描述】:

我只想使用 Oauth2 和 php 在 Instagram 上发布 一张图片,非常类似于 Facebook 的墙贴和 Twitter 的推文,例如:

用户点击我网站上的在 Instagram 上分享按钮,他们重定向到 Instagram 应用批准页面,他们批准并在他们的帐户上发布图像。

我几乎在整个互联网上搜索了这个要求。但我没有得到准确的代码来实现这一点。

我已经检查了这些:

https://github.com/mgp25/Instagram-API

https://github.com/cosenary/Instagram-PHP-API

有人说不可能,Instagram 不允许。

所以我想要的只是一个明确的答案,是否可能?如果是那怎么办?

谢谢

【问题讨论】:

【参考方案1】:

明确答案

这是不可能的,也不是官方的。所有非官方的 API / 包 / 库......你可能发现的任何东西都只是 Instagram 应用程序产生的流量的逆向工程的初步尝试。

所以他们可能会工作一段时间,但 Instagram 会阻止他们。

考虑一下。如果有某种官方方式可以将内容上传到 instagram,那么将会有很多替代应用程序和垃圾邮件发送者使用它。

如果你不相信我,check the official API documentation。没有提到图片的上传。

【讨论】:

Napolux 谢谢。我也是这么想的。 Napolux,我想等着听听其他人是否有其他观点。如果我在接下来的几天内没有得到任何其他答案,那么我一定会接受你的答案。【参考方案2】:
Post istagram image with caption using facebook api(business account - without login) 
ref - https://github.com/facebookarchive/php-graph-sdk

<?php 
define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__.'/src/Facebook/');
require_once(__DIR__.'/src/Facebook/autoload.php');
    $instaData = [
                 'image_url' => 'image_url',
                 'caption' => htmlspecialchars('your message')
                 ];     
$pageAccessToken ='your access token';
$fb = new Facebook\Facebook([
 'app_id' => 'fb_app_id',
 'app_secret' => 'app secrect',
 'default_graph_version' => 'v12.0',
]);
try 
 $response = $fb->post('INSTA_PAGE_ID/media/?', $instaData, $pageAccessToken);
 catch(Facebook\Exceptions\FacebookResponseException $e) 
 echo 'Graph returned an error: '.$e->getMessage();
 exit;
 catch(Facebook\Exceptions\FacebookSDKException $e) 
 echo 'Facebook SDK returned an error: '.$e->getMessage();
 exit;

$graphNode = $response->getGraphNode();
$creation_id = json_decode($graphNode);
$publish_image = [
                 'creation_id' => intval($creation_id->id)
                ];
try 
 $response1 = $fb->post('INSTA_PAGE_ID/media_publish/?', $publish_image, $pageAccessToken);
 catch(Facebook\Exceptions\FacebookResponseException $e) 
 echo 'Graph returned an error: '.$e->getMessage();
 exit;
 catch(Facebook\Exceptions\FacebookSDKException $e) 
 echo 'Facebook SDK returned an error: '.$e->getMessage();
 exit;

echo "<pre>"; print_r($response1); echo "</pre>";
?>

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于使用 Oauth2 在 Instagram 上发布图片 - PHP的主要内容,如果未能解决你的问题,请参考以下文章

Instagram API:范围是不是适用于 OAuth2 隐式身份验证流程?

.NET 中的 OAuth 2.0 与 Instagram API

如何在不登录的情况下从 Instagram 获取 oauth 2 访问令牌(隐式流程)?

在 Instagram 上发布视频

图片未从 ios 6 发布在 Instagram 上

用于 RESTful API 的带有社交网络的 Python OAuth2 服务器