Задать вопрос
@to2n

Как правильно вызывать метод mediatype.post при OAuth2 аутентификации?

var data = JSON.stringify({ media: { type: 'text', text: text }});

                    var p = {
                        application_key: scope.AppInfo.PublicKey,
                        attachment: data,
                        method: 'mediatopic.post',
                        type: 'USER'
                    };

                    var sigParams = params(p, false);

                    var sigParamsCleared = sigParams.replace(/&/g, '');

                    var sigParamsClearedWithSecret = sigParamsCleared + scope.AppInfo.PrivateKey;

                    p.sig = md5(sigParamsClearedWithSecret);
                    p.access_token = scope.AuthInfo.access_token;

                    var request = 'http://api.ok.ru/fb.do?' + params(p);

                    return $http.post(request);


md5 выдает тот же результат что и в "Калькулятор запросов к API", но при этом вызов метода возвращает

PARAM_SIGNATURE : Invalid signature f7ef9370223d9bd93a3ebc073e303c4c, calculated by string application_key=******************************attachment={"media":{"type":"text","text":"Новость по-короче1\nДа! Совсем короткая!"}}method=mediatopic.posttype=USER********SECRET KEY*******
  • Вопрос задан
  • 182 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Vjaka
@Vjaka
Платформа игр (Одноклассники)
На первый вгляд, вместо секретного кода приложения
var sigParamsClearedWithSecret = sigParamsCleared + scope.AppInfo.PrivateKey;

должно быть секретный ключ сессии (который был получен по OAUTH) который у вас судя по переменным наверно лежит в scope.AuthInfo.*Key. Попробуйте:
var sigParamsClearedWithSecret = sigParamsCleared + scope.AuthInfo.PrivateKey;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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