- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте уважаемые ,
давно пощу текст в группу Одноклассники, но захотелось постить фото с текстом в группу в ОК:
нашел скрипт в сети:
<?php
// Параметры
$ok_access_token = ""; // Наш вечный токен
$ok_private_key = ""; // Секретный ключ приложения
$ok_public_key = ""; // Публичный ключ приложения
$ok_group_id = ""; // ID нашей группы
$message = "hello"; // Сообщение к посту, можно с переносами строки
$filephoto = 'photo.jpg';
// Запрос
function getUrl($url, $type = "GET", $params = array(), $timeout = 30, $image = false, $decode = true)
{
if ($ch = curl_init())
{
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
if ($type == "POST")
{
curl_setopt($ch, CURLOPT_POST, true);
// Картинка
if ($image) {
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
}
// Обычный запрос
elseif($decode) {
curl_setopt($ch, CURLOPT_POSTFIELDS, urldecode(http_build_query($params)));
}
// Текст
else {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
}
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$data = curl_exec($ch);
curl_close($ch);
// Еще разок, если API завис
if (isset($data['error_code']) && $data['error_code'] == 5000) {
$data = getUrl($url, $type, $params, $timeout, $image, $decode);
}
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;
}
// 1. Получим адрес для загрузки 1 фото
$params = array(
"application_key" => $ok_public_key,
"method" => "photosV2.getUploadUrl",
"count" => 1, // количество фото для загрузки
"gid" => $ok_group_id,
"format" => "json"
);
// Подпишем запрос
$sig = md5( arInStr($params) . md5("{$ok_access_token}{$ok_private_key}") );
$params['access_token'] = $ok_access_token;
$params['sig'] = $sig;
// Выполним
$step1 = json_decode(getUrl("https://apiok.ru/fb.do", "POST", $params), true);
// Если ошибка
if (isset($step1['error_code'])) {
// Обработка ошибки
print "Error: " . $step1['error_code'];
return ;
}
// Идентификатор для загрузки фото
$photo_id = $step1['photo_ids'][0];
// 2. Закачаем фотку
// Предполагается, что картинка располагается в каталоге со скриптом
$params = array(
"pic1" => new CURLFile("$filephoto"),
);
// Отправляем картинку на сервер, подписывать не нужно
$step2 = json_decode( getUrl( $step1['upload_url'], "POST", $params, 30, true), true);
// Если ошибка
if (isset($step2['error_code'])) {
// Обработка ошибки
print "Error: " . $step2['error_code'];
return ;
}
// Токен загруженной фотки
$token = $step2['photos'][$photo_id]['token'];
// Заменим переносы строк, чтоб не вываливалась ошибка аттача
$message_json = str_replace("\n", "\\n", $message);
// 3. Запостим в группу
$attachment = '{
"media": [
{
"type": "text",
"text": "'.$message_json.'"
},
{
"type": "photo",
"list": [
{
"id": "'.$token.'"
}
]
}
]
}';
$params = array(
"application_key" => $ok_public_key,
"method" => "mediatopic.post",
"gid" => $ok_group_id,
"type" => "GROUP_THEME",
"attachment" => $attachment,
"format" => "json"
);
// Подпишем
$sig = md5( arInStr($params) . md5("{$ok_access_token}{$ok_private_key}") );
$params['access_token'] = $ok_access_token;
$params['sig'] = $sig;
$step3 = json_decode( getUrl("https://apiok.ru/fb.do", "POST", $params, 30, false, false ), true);
// Если ошибка
if (isset($step3['error_code'])) {
// Обработка ошибки
print "Error: " . $step3['error_code'];
return ;
}
// Успешно
echo 'OK';
?>
на PHP 5.6 скрипт отрабатывает без ошибок,
выдает на экран ОК,
но поста с фото в группе Одноклассников с текстом hello нету ((
почему это может происходить?
кто уже настраивал у себя на сайте постинг на PHP , о котором я веду речь,
подскажите пожалуйста,
почему не срабатывают коды постинга на PHP?
самое главное что при обращении к API ОК,
ошибки не возвращаются.
все вроде хорошо, но поста нет в ленте группы