Все сервисы Хабра
Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Закрыть
Задать вопрос
ftc
0
вклад
5
вопросов
1
ответ
100%
решений
Комментарии
Информация
Ответы
Вопросы
Комментарии
Подписки
Нравится
В каком формате передавать параметр st.target?
ftc
@ftc
Автор вопроса
Попробовал такой вариант, урл
https://connect.ok.ru/dk?st.cmd=WidgetSuggest&st.a...
Но при этом оказываются выделенными все друзья, кроме одного (один из двух, переданных в st.target). ЧЯДНТ?
Написано
более трёх лет назад
Как отправлять User2User уведомления из мобильного приложения?
ftc
@ftc
Автор вопроса
Спасибо
Написано
более трёх лет назад
Как проверить подпись при использовании WidgetInvite/WidgetSuggest?
ftc
@ftc
Автор вопроса
Vjacheslav Kanivetc
: Разобрался, в чем дело - не хватало параметра access_token при запросе. Стоит наверное указать это в документации
https://apiok.ru/wiki/pages/viewpage.action?pageId...
Написано
более трёх лет назад
Как проверить подпись при использовании WidgetInvite/WidgetSuggest?
ftc
@ftc
Автор вопроса
Vjacheslav Kanivetc
: Попробовал сейчас пример отсюда
apiok.github.io/js_sample_widgets/viral.html
- все равно получается редирект на BAD SIGNATURE.
Написано
более трёх лет назад
Как проверить подпись при использовании WidgetInvite/WidgetSuggest?
ftc
@ftc
Автор вопроса
Vjacheslav Kanivetc
: да, точно. Полагаю, что если бы использовал что-то другое, у меня бы вариант без st.return тоже бы не работал.
Написано
более трёх лет назад
Как проверить подпись при использовании WidgetInvite/WidgetSuggest?
ftc
@ftc
Автор вопроса
Vjacheslav Kanivetc
: попробовал JS-вариант
var sessionKey = 'сюда подставил ключ сессии, полученный из oAuth при редиректе';
var returnUrl = "
example.com
";
var sigSource = 'st.return=' + returnUrl + sessionKey;
var query = '
connect.ok.ru
' + 'dk?st.cmd=WidgetSuggest&st.app=1140129280';
query += '&st.signature=' + CryptoJS.MD5(sigSource);
query += '&st.return=' + encodeURIComponent(returnUrl);
window.open(query);
Выдает такую же ошибку (редирект на
http://example.com/?code=PARAM_SIGNATURE&error_cod...
Написано
более трёх лет назад
Как проверить подпись при использовании WidgetInvite/WidgetSuggest?
ftc
@ftc
Автор вопроса
согласен, выкладываю код (Unity, C#), константы подчистил
StringBuilder to_sig = new StringBuilder();
to_sig.Append("st.return=");
to_sig.Append("uniwebview://suggest");
// ключ сессии
to_sig.Append(_session.sessionKey);
var sig = MD5(to_sig.ToString());
StringBuilder url = new StringBuilder("connect.ok.ru/dk?st.cmd=WidgetSuggest");
url.Append("&st.app=");
url.Append(WWW.EscapeURL(_settings.appId));
url.Append("&st.return=");
url.Append(WWW.EscapeURL("uniwebview://suggest"));
url.Append("&st.signature=");
url.Append(sig);
url.Append("&st.popup=on");
_webView.url = url.ToString();
Debug.Log("Loading webView with url = " + _webView.url);
_webView.OnLoadComplete += OnLoadComplete;
_webView.OnWebViewShouldClose += OnWebViewShouldClose;
_webView.OnReceivedMessage += OnReceivedMessage;
_webView.Load();
URL-схема uniwebview перехватывается при редиректе
Открывается вот такой URL:
http://connect.ok.ru/dk?st.cmd=WidgetInvite&st.app...
Если убрать st.return, вот так:
StringBuilder to_sig = new StringBuilder();
// ключ сессии
to_sig.Append(_session.sessionKey);
var sig = MD5(to_sig.ToString());
StringBuilder url = new StringBuilder("connect.ok.ru/dk?st.cmd=WidgetSuggest");
url.Append("&st.app=");
url.Append(WWW.EscapeURL(_settings.appId));
url.Append("&st.signature=");
url.Append(sig);
url.Append("&st.popup=on");
_webView.url = url.ToString();
Debug.Log("Loading webView with url = " + _webView.url);
_webView.OnLoadComplete += OnLoadComplete;
_webView.OnWebViewShouldClose += OnWebViewShouldClose;
_webView.OnReceivedMessage += OnReceivedMessage;
_webView.Load();
То открывается и работает нормально
Написано
более трёх лет назад
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации
Закрыть
Реклама
https://connect.ok.ru/dk?st.cmd=WidgetSuggest&st.a...
Но при этом оказываются выделенными все друзья, кроме одного (один из двух, переданных в st.target). ЧЯДНТ?