Если приложение создано в последние несколько лет, ему и так должны отдаваться реальный ID. Вероятно у вас старое приложение с encoding seed. В таком случае воспользуйтесь решением от Валерия
Да, но как видите - сам параметр содержащий этот id один при формировке запроса - и другой когда он дошел до апи сервера. Конкретно я подчеркнул + заменился на ' '
Вероятно надо заdeincodить этот id полученный при аплоаде
Александр Вербер: Через API - нет, но рекламная платформа target имеет довольно много возможностей настраивать таргетирование - посмотрите, устроит ли её фильтры вас
Нет, порядок параметров важен только для расчета подписи, а порядок в самом запросе несущественен.
Не все MD5 функции корректно работают с русским текстом, может попробовать считать MD5 иначе?
И советовал бы пройти дебаггером пример https://github.com/odnoklassniki/ok-js-sdk/blob/ma... - где публикуется медиатопик тоже с заливкой картинки, и сравнить по шагам как формируется запрос и подписи в js-sdk и в вашем примере.
Что я сразу вижу - так это то что вы считаете подпись как
$sig = md5(arInStr($params).md5("{$ok_access_token}{$ok_private_key}"));
а должны как
$sig = md5(arInStr($params).$ok_access_token.$ok_private_key);
Romas34: "запись в ленте" - это и есть медиатопик, который публикуется через mediatopic.post (или виджет, или устаревшее название и формат stream.publish)
В медиатопик картинку можно передать двумя способами..
Либо блоком photo - тогда либо заливаем как в примере что я указал через токен (2 шага), либо заливаем полностью пользователю через id (3 шага с коммит-ом).
Либо блоком app - тогда действительно можно передать url картинки. Если вы планируете использовать блок app - то изучите формат данных https://apiok.ru/dev/methods/rest/mediatopic/media... а так же ограничения. В вопросе вы его не использовали.
Пример - пока нет, доберемся, думаю.
А если по быстрому, то:
1. getUploadUrl - говоришь что хочешь залить картинки
2. POST на этот url - заливка картинок
3. mediatopic.post с id залитой картинки
Стандартные блоки медиатопика не поддерживают картинки по url. Вероятно, вы путаете с share страницы, которая сама из тегов страницы берет картинки.
ну значит у вас не длинный токен) чтобы получить длинный:
1. Шлем запрос на api-support@ok.ru с запросом на пермиссию LONG_ACCESS_TOKEN
2. Получив пермиссию добавляем её в scope OAUTH авторизации, чтобы в сессии была эта пермиссия тоже
3. Логинимся, профит
Класс - это шаринг информации. Просто и легко настроить, можно даже не разбирваться в API а поставить кнопку-виджет на страницу (убедившись, что на ней есть теги). В большинстве случаев этого достаточно.
Медиатопик - это расширенная публикация, где можно сформировать визуальное оформление с нужным контентом.
PHP - это серверный язык. Открытие платежки - это клиентское действие, соответственно естественным образом оно делается на javascript/actionscript. Поэтому пример открытия и даем на javascript. Максимум что можно сделать на php - это редирект на url с платежкой при каком-то клиентском действии, но зачем лишний шаг если можно сразу с клиента открыть платёжку?
Что следует делать на PHP - это собственно обработку платежа.. Есть пример с этой работой на github/apiok в рамках примера html_app_example
Ну вот же:
1. Подпись. считается как md5(параметры + secret) - смотрим пример
А вы делаете md5(параметры + md5(токен + secret))
Вот из того же ok-js.sdk пример расчета подписи
в вашем url получается 2 вопросительных знака, понятно что лишний обрезается при парсинге. стандарт url protocol://host:port/path/to/resource?query=param#hash=param