Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2016, 09:44   #11
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию

Цитата:
Сообщение от DIONISKA Посмотреть сообщение
Они тут не при чём, да и не нужны, для не-анонимных методов для этого есть secret key, который и парсится при авторизации.
этом просто страница "404", вероятно некорректно составлен запрос. Покажи как пытаешься отправлять запись и что у тебя в итоге за url выходит?
Url составляю так

Код:
msg := IdHTTP1.URL.ParamsEncode(msg);
Url := 'https://www.api.vk.com/method/wall.post?' + 'owner_id=' + user_id + '&message=' + msg + '&v=5.50&access_token=' + token;
  PostLogMemo.Lines.Add(Url);
В результате, в PostLogMemo, получаю следующее:

Цитата:
httрs://www.api.vk.com/method/wall.post?owner_id=-114200254&message=%Dзашифрованное сообщение&v=5.50&access_token=токен

404 вылетало, когда сообщение было не зашифровано, но теперь вылетает следующее:

Цитата:
Server: Apache
Date: Fri, 01 Apr 2016 06:14:44 GMT
Content-Type: text/html
Content-Length: 413
Connection: keep-alive
ETag: "*********" (не знаю, что за параметр, поэтому скрыл с целью безопасности)
Данный текст получаю следующим образом:

Код:
except
    on E : EIdHTTPProtocolException do
      PostLogMemo.Lines.Add(IdHTTP1.Response.RawHeaders.Text)
После шифрования, казалось бы, всё должно отправляться, но нет... В чём же причина и что за параметр ETag, в сообщении?
Сайт о программировании и трехмерной графике - cybersite.ucoz.net

Последний раз редактировалось cyberdev; 01.04.2016 в 09:48.
cyberdev вне форума Ответить с цитированием
Старый 01.04.2016, 10:51   #12
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 160
По умолчанию

Цитата:
Сообщение от cyberdev Посмотреть сообщение
Код:
msg := IdHTTP1.URL.ParamsEncode(msg);
Url := 'https://www.api.vk.com/method/wall.post?' + 'owner_id=' + user_id + '&message=' + msg + '&v=5.50&access_token=' + token;
  PostLogMemo.Lines.Add(Url);
И правильно что ошибка 404, там должно быть не "https://www.api.vk.com/method/..." а "https://api.vk.com/method/..." всё-же не зря я предлагал внимательно читать документацию
к тому-же вероятно должно быть не

Код:
msg := IdHTTP1.URL.ParamsEncode(msg);
Url := 'https://www.api.vk.com/method/wall.post?' + 'owner_id=' + user_id + '&message=' + msg + '&v=5.50&access_token=' + token;
  PostLogMemo.Lines.Add(Url);
а
Код:
Url := 'https://api.vk.com/method/wall.post?' + 'owner_id=' + user_id + '&message=' + msg + '&v=5.50&access_token=' + token;
url:=IdHTTP1.URL.URLEncode(url);
s:=IdHTTP1.Get(url)
Ps: и лучше отказаться от названий переменных, констант и пр., которые совпадают с объявленными в других юнитах, я про "msg"

Последний раз редактировалось DIONISKA; 01.04.2016 в 11:14. Причина: поправил себя
DIONISKA вне форума Ответить с цитированием
Старый 01.04.2016, 12:04   #13
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию

DIONISKA,

Цитата:
И правильно что ошибка 404, там должно быть не "https://www.api.vk.com/method/..." а "https://api.vk.com/method/..."
404 было, когда я msg не шифровал (см. #11)

Но я сделал так, как ты мне сказал:

Код:
Url := IdHTTP1.URL.ParamsEncode('https://api.vk.com/method/wall.post?' + 'owner_id=' + user_id + '&message=' + _msg + '&v=5.50&access_token=' + token);
  PostLogMemo.Lines.Add(Url);
try
    PostLogMemo.Lines.Add('');
    PostLogMemo.Lines.Add(IdHTTP1.Get(Url));
В результате исключений не возникает, но в PostLogMemo пишет следующий ответ сервера:

Цитата:
{"error":{"error_code":10,"error_ms g":"Internal server error: could not get application","request_params":[{"key":"oauth","value":"1"},{"key": "method","value":"wall.post"},{"key ":"owner_id","value":"-114200254"},{"key":"message","value ":"???????????? ? ??????\r\n"},{"key":"v","value":"5. 50"}]}}
Возникает вопрос, с помощью IdHTTP вообще возможно как-то отправить сообщение в группу?

Странно, запрос на получение Id группы "html := idhttp1.Get('https://api.vk.com/method/groups.getById?group_id='+GrpName(u ser_url)+'&fields=description&versi on=5.50');" нормально отправляется и без шифрования.
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
cyberdev вне форума Ответить с цитированием
Старый 01.04.2016, 12:50   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код 10 - Произошла внутренняя ошибка сервера.
Попробуйте повторить запрос позже.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.04.2016, 13:01   #15
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код 10 - Произошла внутренняя ошибка сервера.
Попробуйте повторить запрос позже.
Значение кода ошибки мне известно. Проблема в другом, если я отправлю сообщение в ту же группу, только с помощью другой программы, то оно появится на стене. Для моей же программы пишет ошибку 10. Значит, что-то неправильно в самом запросе. Ещё, можно проверить по данной ссылке https://vk.com/dev/wall.post (форма внизу), подставив в нужные поля id группы и сообщение, которое появится на стене.
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
cyberdev вне форума Ответить с цитированием
Старый 01.04.2016, 13:34   #16
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 160
По умолчанию

Вероятно всё-же некорректный запрос?
Набросал за пару минут, может поможет:
(appid замени на своё)
Вложения
Тип файла: rar d7.rar (299.4 Кб, 17 просмотров)
DIONISKA вне форума Ответить с цитированием
Старый 01.04.2016, 15:25   #17
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию

DIONISKA, спасибо, выручил!
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
cyberdev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение значения идентификатора SQL при вставке, и вывод в переменную в C# SeregaVili Помощь студентам 5 11.11.2015 19:02
Получение идентификатора самого "позднего" документа Luuzuk SQL, базы данных 9 31.07.2015 21:11
Алгоритм генерации идентификатора CraZZZy-GameRRR PHP 12 14.04.2014 09:24
Получение идентификатора картинки из url Arsenx777 PHP 0 22.04.2012 18:53
Получение идентификатора кодировки по названию Lindemann66 Общие вопросы C/C++ 0 02.08.2011 13:37