Отравка фото на API OK

179
07 октября 2018, 21:30

Делаю постер товаров в Одноклассники. Все права получены, использую вечный токен доступа. API работает проверял на множестве методов. Но возникла проблема с загрузкой фотографии к самому товару. Вот мой код:

<?php 
    require("./ok_lib.php"); 
    $LOT=380143; 
 
    function load_photo($file) { 
    global $LOT; 
    $upload_url = OdnoklassnikiSDK::makeRequest("photosV2.getUploadUrl"); 
 
    $id=$upload_url['photo_ids'][0]; 
    $upload_url=$upload_url['upload_url']; 
 
    //Получение фото из cloud.bugrealt.by 
    $photo=str_replace('"','', shell_exec("curl  -v  -H 'Authorization: Token XXXXXXXXXXX' -H 'Accept: application/json; charset=utf-8; indent=4' '194.158.219.97:8000/api2/repos/972a9d27-e2a8-411a-9bea-86889c770a6f/file/?p=/".$LOT."/".$file."'")); 
    $path = $_SERVER['DOCUMENT_ROOT'] . '/poster/temp/temp.jpg'; 
    file_put_contents($path, file_get_contents($photo)); 
 
    //Загружаем файл на сервер OK 
    $ch = curl_init(); 
    $parameters = [ 
        'pic1' => new \CURLFile($path) 
    ]; 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array( 
        "Content-Type:multipart/form-data" 
    )); 
    curl_setopt($ch, CURLOPT_URL, $upload_url); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $response = curl_exec($ch); 
    curl_close($ch); 
 
    preg_match_all('/.+token":"(.*)"/Uis', $response, $mach); 
    $token=$mach[1][0]; 
    echo $token; 
    echo '<hr>'; 
    return($token); 
    } 
 
 
 
    $id1=load_photo('01.JPG'); 
    $id2=load_photo('02.JPG'); 
    $id3=load_photo('03.JPG'); 
    $id4=load_photo('04.JPG'); 
    $id5=load_photo('05.JPG'); 
    $id6=load_photo('06.JPG'); 
    $id7=load_photo('07.JPG'); 
    $id8=load_photo('08.JPG'); 
    $id9=load_photo('09.JPG'); 
 
 
 
    $content='{"media":[ 
                        {"type":"text","text":"Название товара"}, 
                        {"type":"text","text":"Описание товара"}, 
                        { 
                            "type": "photo", 
                            "list": [ 
                                {"id": "'.$id1.'"},  
	                            {"id": "'.$id2.'"} 
                            ] 
                        }, 
                        {"type":"product","price":1000,"lifetime": 30} 
              ]}'; 
 
    echo $content.'<hr>'; 
 
 
    $response=OdnoklassnikiSDK::makeRequest("market.add", array("gid" => "54352824500462", 
                                                                            "type" => "GROUP_PRODUCT", 
                                                                            "attachment" => $content, 
                                                                            )); 
 
    var_dump($response); 
 
 
 
    ?>

Вот что пишет:

{ ["error_code"]=> int(300) ["error_msg"]=> string(41) "NOT_FOUND : not.found.photouploadinglocal" ["error_data"]=> NULL }

Пишет что фотография не загружена на сервер, хотя мне и пришел ответ с токеном фотографии. Помогоите!

READ ALSO
Doctrine не поддгружает связанные обьекты

Doctrine не поддгружает связанные обьекты

Например у меня есть таблицы campaigns и campaign_channels, я создаю обьект Campaign и CampaignChannels, в базе создаются воответствующие записи, но когда я хочу вытянуть...

164
Оптимизация и сжатие изображений FuelPHP

Оптимизация и сжатие изображений FuelPHP

Какие есть бесплатные способы сжатия изображений при загрузке на сайт? Сайт построен на FuelPHP

175
Yii2 Прикрепление файлов к email на лету

Yii2 Прикрепление файлов к email на лету

Вообщем вопрос простой как в yii2 при использовании стандартного функционала прикрепить файл/файлы на лету, те

234