Задать вопрос
@Huligan166

Не загружается изображение в mediatopic.post в чем ошибка?

<?php
// ID приложение
$appid = "xxx";
// Публичный ключ
$pub_k = "xxx";
// Секретный ключ
$sec_k = "xxx";
// Данные для авторизации
$access_token = "xxx";
$secret_session_key = "xxx";
 
// ID группы
$uid = "xxx";
//
//
 
 
$image_path = dirname(__FILE__).'/test.jpg';
$post_data = array("file1" => '@'.$image_path);
$sig = md5("application_key=".$pub_k."format=jsongid=".$uid."method=photosV2.getUploadUrlsession_key=".$access_token.$secret_session_key);
 
$url = file_get_contents("https://api.ok.ru/fb.do?application_key=".$pub_k."&format=json&gid=".$uid."&method=photosV2.getUploadUrl&session_key=".$access_token."&sig=".$sig."&session_key=".$access_token."");
$url1 = json_decode($url,true);
$ur = ($url1["upload_url"]);
$photo_ids = ($url1['photo_ids'][0]);
 
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ur);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$result = json_decode(curl_exec($ch),true);
 
print_r($result);
// токен фотографии
$token = ($result["photos"][$photo_ids]["token"]);
 
// id фотографии
echo $photo_ids;
echo $token;
 
 
 
 
function getUrl($url, $type="GET", $params=array(), $timeout=30) {
    if ($ch = curl_init()) {
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        if ($type == "POST") {
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, urldecode(http_build_query($params)));
        }
        
            //
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    } else {
        return "{}";
    }
}
 
 
function arInStr($array) {
    ksort($array);
    $string = "";
    foreach($array as $key=>$val) {
        if (is_array($val)) {
            $string .= $key."=".arInStr($val);
        } else {
            $string .= $key."=".$val;
        }
    }
    return $string;
}
$params = array(
    "application_key"=>$pub_k,
    "method"=>"mediatopic.post",
    "gid"=>$uid,//ID нашей группы
    "type"=>"GROUP_THEME",
    "attachment"=>'{"media": [{"type": "text","text": "test photo"},{"type": "photo","list":[{"id": "'.$token.'"}]}],"publishAt": "2019-02-01 19:09:13","onBehalfOfGroup": "true"}',//
    "format"=>"json"
);
$sig = md5(arInStr($params).md5("{$access_token}{$sec_k}"));
$params["access_token"]=$access_token;
$params["sig"]=$sig;
 
$result_post = json_decode(getUrl("https://api.ok.ru/fb.do", "POST", $params), true);
 
if (isset($result_post['error_code']) && $result_post['error_code'] == 5000) {
    getUrl("https://api.ok.ru/fb.do", "POST", $params);
}
 
?>

Публикуется пост либо без фотографии или вообще не публикуется в чем может быть ошибка?
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы