function Post_Url($url, $params=array(), $timeout=15) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
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;
}
 
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;
}

$ok_access_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";//Наш вечный токен
$ok_private_key = "xxxxxxxxxxxxxxxxxxxxxxxx";//Секретный ключ приложения
$ok_public_key = "xxxxxxxxxxxxxxxxxxxxxx";//Публичный ключ приложения
$params = array(
    "application_key"=>$ok_public_key,
    "method"=>"mediatopic.post",
    "gid"=>"52007885209774",//ID нашей группы
    "type"=>"GROUP_THEME",
    "attachment"=>'{"media": [{"type": "link","url": "https://seolik.ru"}]}',
    "format"=>"json"
);
$sig = md5(arInStr($params).md5("{$ok_access_token}{$ok_private_key}"));
$params["access_token"]=$ok_access_token;
$params["sig"]=$sig;
$result = json_decode(Post_Url("https://api.ok.ru/fb.do", $params), true);

//print_r($result); при успешном выполнении в ответе будет id поста
	
// список возможных ошибок https://apiok.ru/dev/errors	
	
//Если парсер Одноклассников не смог открыть вашу ссылку, то повторяем запрос ещё раз
if (isset($result['error_code']) && $result['error_code'] == 5000) {
Post_Url("https://api.ok.ru/fb.do", $params);
}