Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Не работает stream.publish в ActionScript3 SDK, error_code 104 (http://www.flasher.ru/forum/showthread.php?t=161051)

zweropet 20.07.2011 12:32

Не работает stream.publish в ActionScript3 SDK, error_code 104
 
Здравствуйте, помогите разобраться.

Пытаюсь разместить запись, в ответ получаю "error_code 104 Signature does not match the required" использую ActionScript3 SDK

Код AS3:

//прошла успешная инициализация
 private function onConnect(e:ApiServerEvent):void {
 
 //спрашиваю подтверждение размещения записи
 Odnoklassniki.showConfirmation('stream.publish','Разместить записть?',flashVars.sig);
 }
 
 //пришло подтверждение от юзера
 private function confirm (event:ApiCallbackEvent):void {
 
 //если пользователь подтвердил шлем запрос на размещение
 if (event.result == 'ok') {
 
 //вложение
 var attachment:* = JSON.encode({caption:"Тест",
    media:[
        {href:"link",src:"http://www.buyeat.ru/test/shopimg/6.jpg",type:"image"}
    ]
 });
 
 //ссылки
 var action_link:* = JSON.encode([{text:'Тестовая',href:'ссылка'}]);
 
 //шлю сам запрос
 Odnoklassniki.callRestApi('stream.publish', donePublish, {uid:flashVars.logged_user_id, message:'Тестовое сообщение', attachment:attachment, action_links:action_link,resig:event.data});
 
 }
 }

В песочнице работает если убрать resig, а в рабочей версии сайта не работает ни с resig, не без resig.
Подскажите в чем ошибка?
Как я понял из описания метода, параметр resig не должен участвовать в повторном составлении подписи запроса при отправке, может в библиотеке не стоит для него исключения?

YETI_UA 26.07.2011 01:24

там в библиотеке одноклассников, есть класс Stream, в котором, насколько я помню, есть метод Stream.publish(), который сам прекрасно сделает все подписи. ему нужны только входные данные. работает на ура.

mickfallout 02.08.2011 08:50

да, и изображение должно быть 50х50 максимум.

Ёлочка 24.07.2014 18:12

Цитата:

Сообщение от YETI_UA (Сообщение 1014659)
там в библиотеке одноклассников, есть класс Stream, в котором, насколько я помню, есть метод Stream.publish(), который сам прекрасно сделает все подписи. ему нужны только входные данные. работает на ура.

Использую Stream.publish(). Появляется диалог публикации записи. Нажимаю "опубликовать", то в ленте ни ответа, ни привета. Как правильно в ленту записи отправлять?

RAlfDog 25.07.2014 10:47

Цитата:

Сообщение от Ёлочка (Сообщение 1169554)
Использую Stream.publish(). Появляется диалог публикации записи. Нажимаю "опубликовать", то в ленте ни ответа, ни привета. Как правильно в ленту записи отправлять?

Если в ответ на вызов метода у вас пришло "true" - ждите, запись должна появиться, иногда бывают задержки с появлением.

Добавлено через 17 минут
Цитата:

Сообщение от zweropet (Сообщение 1013114)
Здравствуйте, помогите разобраться.

Пытаюсь разместить запись, в ответ получаю "error_code 104 Signature does not match the required" использую ActionScript3 SDK

Не разбирался с ActionScript-библиотекой, но для JavaScript API алгоритм выглядит так:

1. сначала вызывается окно подтверждения и в него передается заново пересчитанная сигнатура по тем параметрами, которые будут переданы в stream.publish
Код:

FAPI.UI.showConfirmation("stream.publish", message, FAPI.Client.calcSignature(postParamsObj));
postParamsObj - это объект с параметрами для публикации, который имеет свойства "method", "message", "attachments" и "action_links"

2. потом вызываем непосредственно сам stream.publish
Код:

FAPI.Client.call(postParamsObj, onPublish, data);
onPublish - это колбэк на вызов этого метода
data - это полученная после вызова showConfirmation ре-сигнатура (она не добавляется дополнительным свойством "resig" в объект postParamsObj)


Часовой пояс GMT +4, время: 08:25.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.