Проблема с токеном доступа Instagram API

Я пытаюсь постить в Instagram через их API. Получил токен как показано в этой статье. Используя этот токен у меня получается получать посты из моего аккаунта и даже обновлять токен (что, впрочем и не требуется, поскольку этот токен постоянный), но сделать пост не выходит. Получаю ошибку: Invalid OAuth access token - Cannot parse access token

Так и не разобрался, что не так с токеном. Судя по сообщению в ошибке, API не устраивает именно формат токена. Может быть, для постинга нужен другой токен?

index.php

function get_content($url, $proxy = '', $post = false){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    if($proxy){
        curl_setopt($ch, CURLOPT_PROXY, $proxy);
    }
    if($post){
        curl_setopt($ch, CURLOPT_POST, 1);
    }
    $output = curl_exec($ch);
    if(!$output){
        echo 'Curl Error: ' . curl_error($ch);
    }
    curl_close($ch);
    return $output;
}

function make_post($proxy, $id, $payload){
    $url = "https://graph.facebook.com/v10.0/". $id ."/media?" . http_build_query($payload);
    return get_content($url = $url, $proxy = $proxy, $post = true);
}

$proxy = '204.137.250.6:3129';
$instagram_account_id = '<my id>';
$instagramAccesToken = '<my token>';
$posting_image_url = 'https://upload.wikimedia.org/wikipedia/commons/9/99/Black_square.jpg'; // some square jpg image to post
$caption = 'test posting to instagram using GraphAPI';

$payload = [
    'image_url' => $posting_image_url,
    'caption' => $caption,
    'access_token' => $instagramAccesToken
];

$response = make_post($proxy, $instagram_account_id, $payload);
echo $response;

Пробовал сделать это через python взяв код отсюда

main.py

import requests
import config
import json
def postInstagramQuote():
    image_location_1 = 'https://upload.wikimedia.org/wikipedia/commons/9/99/Black_square.jpg'
    post_url = 'https://graph.facebook.com/v10.0/{}/media'.format(config.ig_user_id)
    payload = {
        'image_url': image_location_1,
        'caption': 'Trying to post by Instagram GraphAPI',
        'access_token': config.user_access_token
    }
    proxies = {
        'http': '204.137.250.6:31290',
        'https': '204.137.250.6:3129',
    }
    r = requests.post(post_url, data=payload, proxies=proxies)
    print(r.text)
    result = json.loads(r.text)
    if 'id' in result:
        creation_id = result['id']
        second_url = 'https://graph.facebook.com/v10.0/{}/media_publish'.format(config.ig_user_id)
        second_payload = {
            'creation_id': creation_id,
            'access_token': config.user_access_token
        }
        r = requests.post(second_url, data=second_payload)
        print('--------Just posted to instagram--------')
        print(r.text)
    else:
        print('HOUSTON we have a problem')
postInstagramQuote()

Результат тот же.

Ответ сервера:

{"error":{"message":"Invalid OAuth access token - Cannot parse access token","type":"OAuthException","code":190,"fbtrace_id":"APyX-K6cxenBWXSHgc-x4p8"}}

Приходится использовать прокси, потому что инстаграм заблокирован. Но на работоспособность прокси никак не может влиять.


Ответы (0 шт):