【问题标题】:Post an image on instagram using Oauth2 - PHP使用 Oauth2 在 Instagram 上发布图片 - 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 不允许。

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

谢谢

【问题讨论】:

    标签: php oauth-2.0 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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多