Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi и сообщения групп во Вконтакте / 18 сообщений из 18, страница 1 из 1
27.04.2019, 13:56
    #39807164
Menmo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
Дорогие наши программисты, помогите решить задачу. Нужно получать сообщения именно из группы во Вконтакте и реагировать на них, если в сообщении найден определённый текст. Второе реализовать легко, а вот первое? Как получать сообщения из сообщества вк?
...
Рейтинг: 0 / 0
27.04.2019, 14:14
    #39807167
shonli95
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
post,get. xml массив и так далее. for-in pos match и все дела. Программа за 5 минут, ничего сложного
...
Рейтинг: 0 / 0
27.04.2019, 15:06
    #39807173
Menmo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
shonli95,

Можно пример кода? Для кого-то может и легко, но я самоучка.. Долго доходит)
...
Рейтинг: 0 / 0
27.04.2019, 19:14
    #39807202
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
Menmo,

посмотри темы вот этого пользователя: "Tech N9ne"
Он писал что-то для работы с сообщениями ВК и тут задавал вопросы.
...
Рейтинг: 0 / 0
27.04.2019, 21:55
    #39807223
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
самое сложное там процедура логина, в остальном все довольно тривиально.
...
Рейтинг: 0 / 0
28.04.2019, 08:42
    #39807269
Menmo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
эндисамое сложное там процедура логина, в остальном все довольно тривиально.
Можно пожалуйста пример? Как залогиниться в вк знаю, через API, но вот как именно получать информацию из сообщений в группе не представляю.
...
Рейтинг: 0 / 0
28.04.2019, 11:16
    #39807280
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
Мне кажется если Вы не представляете как вызвать url передав ему параметры описанные в API то Вы слишком рано взялись за эту тему, возьмите пример попроще для начала. У VK очень приличная документация с описанием всех методов, полностью на русском языке, обычному программисту этого должно быть более чем достаточно, просто это пока не Ваш уровень, не обижайтесь.
...
Рейтинг: 0 / 0
29.04.2019, 15:26
    #39807670
shonli95
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
энди,

Ржу не могу, аж до слёз. Ох как сложно - то взять, и передать username и password с client_id а так же client_secret с типом grant_type равным password и правами scope предварительно указав версию v по адресу oauth.vk.com/token. И авторизация готова, в 1 строку
...
Рейтинг: 0 / 0
29.04.2019, 15:31
    #39807675
shonli95
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
Вот ваша сложная авторизация

https://oauth.vk.com/token?username=Login@gmail.com&;password=MyPass&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&grant_type=password&scope=244236287&v=5.92]https://oauth.vk.com/token?username=Login@gmail.com&;password=MyPass&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&grant_type=password&scope=244236287&v=5.92
...
Рейтинг: 0 / 0
29.04.2019, 16:23
    #39807715
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
shonli95Вот ваша сложная авторизация

Все снифферы в локальной сети бьются в экстазе :)
...
Рейтинг: 0 / 0
29.04.2019, 17:09
    #39807763
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
...
Рейтинг: 0 / 0
29.04.2019, 17:16
    #39807769
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
а вот тут как использовать стандартный OAuth
http://disik-programmer.blogspot.com/2017/07/delphi-102-tokyo-rest-api-1.html
...
Рейтинг: 0 / 0
30.04.2019, 01:39
    #39808062
shonli95
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
alekcvp,

Пусть упадут в конвульсию) Авторизация, post метод который не только передаёт аргументы, но и файлы

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.Net.URLClient, System.Net.HttpClient,
  System.Net.HttpClientComponent, System.JSON, System.Net.Mime, Vcl.StdCtrls;

type
  TForm2 = class(TForm)
    NetHTTPClient1: TNetHTTPClient;
    ButtonAuth: TButton;
    Login: TEdit;
    Pass: TEdit;
    GetDialogs: TButton;
    procedure ButtonAuthClick(Sender: TObject);
    procedure GetDialogsClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    Access_token, Ver: string;
    function AuthVK(const Login, Pass, Client_id, Client_secret, Scope, V: string): string;
    function Call(const Method: string; Data: TMultipartFormData): TJSONValue;
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

function TForm2.AuthVK(const Login, Pass, Client_id, Client_secret, Scope, V: string): string;
var
  Resp: IHTTPResponse;
  JsonValue: TJSONObject;
  Val: TJSONValue;
  Str: string;
begin
  Result := '';
  Resp := NetHTTPClient1.Get('https://oauth.vk.com/token?username=' + Login + '&password=' + Pass +
    '&client_id=' + Client_id + '&client_secret=' + Client_secret + '&grant_type=password&scope=' +
    Scope + '&v=' + V);

  JsonValue := TJSonObject.ParseJSONValue(Resp.ContentAsString()) as TJSONObject;
  if JsonValue = nil then
    Exit;

  Val := JsonValue.Values['access_token'];
  if Val = nil then
    Application.MessageBox(PChar(JsonValue.Values['error_description'].Value),
      PChar(JsonValue.Values['error'].Value), MB_OK or MB_ICONINFORMATION)
  else
    Result := Val.Value;

  Ver := V;
end;

function TForm2.Call(const Method: string; Data: TMultipartFormData): TJSONValue;
var
  Val: TJSONValue;
begin
  try
    Result := nil;
    if Access_token <> '' then
    begin
      if Data = nil then
      begin
        Application.MessageBox(PChar('Empty Data in call method to ' + Method), 'Error',
          MB_OK or MB_ICONINFORMATION);
        Exit;
      end;

      Data.AddField('access_token', Access_token);
      Data.AddField('v', Ver);

      Result := TJSonObject.ParseJSONValue(NetHTTPClient1.Post('https://api.vk.com/method/' +
        Method, Data).ContentAsString()) as TJSONObject;
      if Result = nil then
        Exit;

      Val := Result.GetValue<TJSONValue>('error', nil);
      if Val <> nil then
        Application.MessageBox(PChar(Val.ToJSON), PChar(Val.GetValue<string>('error_msg')),
          MB_OK or MB_ICONINFORMATION)
      else
        Result := Result.GetValue<TJSONValue>('response', nil);
    end
  except

  end;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  NetHTTPClient1.UserAgent :=
    'VKAndroidApp/4.38-816 (Android 6.0; SDK 23; x86; Google Nexus 5X; ru)';
end;

procedure TForm2.ButtonAuthClick(Sender: TObject);
begin
  Access_token := AuthVK(Login.Text, Pass.Text, '2274003', 'hHbZxrka2uZ6jB1inYsH',
    '244236287', '5.95');
  if Access_token <> '' then
    ShowMessage('Удачно');
end;

procedure TForm2.GetDialogsClick(Sender: TObject);
var
  P: TMultipartFormData;
  JsonValue, Tmp: TJSONValue;
  Items, Items2: TJSONArray;
  Count, I: Integer;
  Vv: TJSONValue;
  Ss: string;
begin
  if Access_token <> '' then
  begin
    P := TMultipartFormData.Create();

    P.AddField('count', '5'); // 5 записей

    JsonValue := Call('messages.getDialogs', P);
    if JsonValue = nil then
      Exit;
    Items := JsonValue.GetValue<TJSONArray>('items', nil);
    if Items = nil then
      Exit;

    For I := 0 to Items.Count - 1 do
    begin
      Tmp := Items.Items[I].GetValue<TJSONValue>('message', nil);
      ShowMessage('user_id: ' + Tmp.GetValue<string>('user_id', '') + #13 + 'Message:' +
        Tmp.GetValue<string>('body', ''));
    end;
  end;
end;

end.

...
Рейтинг: 0 / 0
13.05.2019, 15:22
    #39812565
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
alekcvpshonli95Вот ваша сложная авторизация

Все снифферы в локальной сети бьются в экстазе :)
Эти снифферы увидят только обращение по https к домену oauth.vk.com и лососнут тунца
...
Рейтинг: 0 / 0
14.05.2019, 08:59
    #39812781
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
Василий 2,
Fiddler тебе в помощь, он как зоркий глаз, почти что все видит.
...
Рейтинг: 0 / 0
14.05.2019, 11:03
    #39812861
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
ziv-2014Василий 2,
Fiddler тебе в помощь, он как зоркий глаз, почти что все видит.


Ага, расскажи мне, как он в LAN без установки своего сертификата расковыряет SSL xD
...
Рейтинг: 0 / 0
14.05.2019, 11:04
    #39812862
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
Василий 2, Установи сертификат, тебе что-то мешает.
...
Рейтинг: 0 / 0
14.05.2019, 19:48
    #39813201
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и сообщения групп во Вконтакте
Кому? Узлу в локальной сети?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi и сообщения групп во Вконтакте / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]