@likvp

Как сделать запись в группе ok.ru по средством php?

Нашел скрипт, вот исполнительная часть:
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);
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://bazarbratsk.ru)');
$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;
}

$ok_access_token = "tkn14Xrkj17NtyTSLDM*********uP1X5CWzjxydP";//Наш вечный токен
$ok_private_key = "8BAD5FF7****34CD79F4";//Секретный ключ приложения
$ok_public_key = "CBAKHPD***";//Публичный ключ приложения

$params = array(
"application_key"=>$ok_public_key,
"method"=>"mediatopic.post",
"gid"=>"52987290124455",//ID нашей группы
"type"=>"GROUP_THEME",
"attachment"=>'{"media": [{"type": "link","url": "vp43.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(getUrl("https://api.ok.ru/fb.do", "POST", $params), true);
//Если парсер не смог открыть нашу ссылку (иногда он это делает со второй попытки), то отправляем ещё раз
if (isset($result['error_code']) && $result['error_code'] == 5000) {
getUrl("https://api.ok.ru/fb.do", "POST", $params);
}
print_r($result);

Пересоздал, токен, стало приходить вот такое сообщение:

Array ( [error_code] => 456 [error_msg] => GROUP_RESTRICTION : errors.group.cannot_create_topic [error_data] => )
  • Вопрос задан
  • 1537 просмотров
Пригласить эксперта
Ответы на вопрос 3
AloneCoder
@AloneCoder
[object Object]
https://apiok.ru/wiki/display/api/mediatopic.post+ru
Метод по умолчанию закрыт для использования.
Для публикации в группу требуется только право GROUP_CONTENT.
Ответ написан
@likvp Автор вопроса
cc3b0fe27cd24a0f9fb2fe9daa11b716.JPG5ba1d1c7cccf469aa4b3064a8206b00a.JPG
Ответ написан
Комментировать
Vjaka
@Vjaka
Платформа игр (Одноклассники)
Судя по ошибке - у пользователя нет прав создавать в группе, правда скриншот выше говорит что права постить даны всем.. Остается вариант что вечный токен не дает это право.

Рекомендуется написать на api-support@ok.ru и посмотреть детально проблему в конкретном случае
Ответ написан
Ваш ответ на вопрос

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

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