API untuk Vkontakte
| Kelompok | % |
|---|---|
| Akun | 100 |
| Iklan | 0 |
| Appwidgets | 0 |
| Aplikasi | 20 |
| Asr | 100 |
| Audio | 79 |
| Auth | 100 |
| Papan | 100 |
| Database | 100 |
| Dokumen | 100 |
| Downloadedgames | 100 |
| Fave | 100 |
| Teman-teman | 100 |
| Hadiah | 100 |
| Kelompok | 100 |
| Leadforms | 0 |
| Lead | 0 |
| Suka | 100 |
| Pasar | 100 |
| Pesan | 100 |
| NEWSFEED | 100 |
| Catatan | 100 |
| Pemberitahuan | 100 |
| Pesanan | 25 |
| Halaman | 100 |
| Foto | 100 |
| Podcast | 100 |
| Jajak pendapat | 100 |
| Kartu cantik | 0 |
| Mencari | 100 |
| Aman | 100 |
| Statistik | 100 |
| Status | 100 |
| Penyimpanan | 100 |
| Cerita | 100 |
| Mengalir | 100 |
| Pengguna | 100 |
| Utils | 100 |
| Video | 100 |
| Dinding | 100 |
| Widget | 0 |
Catatan
Untuk beberapa versi lama lingkungan, diperlukan untuk menunjukkan arahan old_version .
Catatan
Untuk versi IDE lama, sertakan arahan old_version
1. Otorisasi melalui formulir OAuth2
Для FMX - VK.FMX.OAuth2 - TFormFMXOAuth2
Для VCL - VK.VCL.OAuth2 - TFormOAuth2
...
var
FToken: string;
FChangePasswordHash: string;
FTokenExpiry: Int64;
...
procedure TFormMain.VKAuth (Sender: TObject; Url: string; var Token: string; var TokenExpiry: Int64; var ChangePasswordHash: string);
begin
if FToken.IsEmpty then
begin
TFormFMXOAuth2.Execute(Url,
procedure(Form: TFormFMXOAuth2)
begin
FToken := Form.Token;
FTokenExpiry := Form.TokenExpiry;
FChangePasswordHash := Form.ChangePasswordHash;
if not FToken.IsEmpty then
VK.Login;
end );
end
else
begin
Token := FToken;
TokenExpiry := FTokenExpiry;
end ;
end ;
VK.Login(<родитель для окна для VCL, необяз.>);
2. Otorisasi secara langsung menggunakan token (pengguna atau bot)
procedure TFormMain.VKAuth (Sender: TObject; Url: string; var Token: string; var TokenExpiry: Int64; var ChangePasswordHash: string);
begin
Token := ' <здесь токен> ' ;
end ; 3. Otorisasi Menggunakan Kunci Layanan (ditunjukkan dalam komponen DesignTime)
4. Otorisasi Langsung (Beta)
VKAPI.Application := TVkApplicationData.Android; < -- Данные оф. клиента для Android
VKAPI.Login( ' +7********** ' , ' ***************** ' ,
function( var Code: string): Boolean
begin
Code := InputBox( ' ' , ' ' , ' ' ); < -- Код двухэтапной авторизации
Result := not Code.IsEmpty;
end ); program VKBotTemplate;
uses
VK.Bot,
VK.Types,
VK.Bot.Utils,
VK.Messages,
VK.GroupEvents,
VK.Entity.Message,
VK.Entity.ClientInfo;
var
VKBot: TVkBotChat;
begin
VKBot := TVkBotChat.GetInstance( 12345678 , ' <token> ' );
with VKBot do
try
OnMessage :=
procedure(Bot: TVkBot; GroupId: Integer; Message: TVkMessage; ClientInfo: TVkClientInfo)
begin
if PeerIdIsUser(Message.PeerId) then
begin
if Assigned(Message.Action) then
case Message.Action.& Type of
TVkMessageActionType.ChatInviteUser:
Bot.API.Messages.SendToPeer(Message.PeerId, ' Welcome ' );
end
else
Bot.API.Messages.SendToPeer(Message.PeerId, ' Your message: ' + Message.Text);
end ;
end ;
if Init and Run then
begin
Console.Run(
procedure( const Command: string; var Quit: Boolean)
begin
Quit := Command = ' exit ' ;
end );
end
else
Readln;
finally
Free;
end ;
end .Mendapatkan pengguna
var
Users: TVkProfiles;
i: Integer;
begin
if VK.Users.Get(Users, [ 286400863 , 415730216 ], TVkProfileFields. All ) then
begin
for i := Low(Users.Items) to High(Users.Items) do
begin
Memo1.Lines.Add( ' About: ' + Users.Items[i].About);
Memo1.Lines.Add( ' BirthDate: ' + Users.Items[i].BirthDate);
Memo1.Lines.Add( ' Domain: ' + Users.Items[i].Domain);
Memo1.Lines.Add( ' FirstName: ' + Users.Items[i].FirstName);
Memo1.Lines.Add( ' Movies: ' + Users.Items[i].Movies);
Memo1.Lines.Add( ' ------------ ' );
end ;
Users.Free;
end ;
end ;Menginstal Status Online
if VK.Account.SetOnline then
Memo1.Lines.Add( ' online ' )
else
Memo1.Lines.Add( ' Error online ' );Penciptaan pos dalam kelompok
var
Params: TVkWallParams;
begin
Params.Message( ' Test Text ' );
Params.OwnerId(- 145962568 );
Params.FromGroup(True);
Params.Signed(True);
Params.Attachments([Attachment.Doc( 58553419 , 533494309 , ' 657138cd5d7842ae0a ' )]);
VK.Wall.Post(Params);
end ; Mengirim pesan
Vk.Messages.Send.PeerId(Message.PeerId).Message(FAnswer).Send.Free;Atau, dengan pembuatan keyboard
var
Keys: TVkKeyboardConstructor;
begin
Keys.SetOneTime(True);
Keys.AddButtonText( 0 , ' Погода ' , ' weather ' , bcPositive);
Keys.AddButtonText( 0 , ' Отмена ' , ' cancel ' , bcNegative);
Keys.AddButtonText( 1 , ' Информация ' , ' info ' , bcPrimary);
Keys.AddButtonText( 1 , ' Команды ' , ' commands ' , bcSecondary);
Vk.Messages.New.
PeerId(PeerId).
Keyboard(Keys).
Message( ' Выбери вариант ' ).
Send;
end ;Atau sederhana
VK.Messages.Send(PeerId, ' Текст сообщения ' , [<вложения>]);Mengirim foto
VK.Messages.New.UserId( 58553419 ).AddPhotos([ ' D:Downloads6q8q9f.gif ' ]).Send;Mendapatkan Rekaman Audio A Putar (Album)
var
List: TVkAudios;
Params: TVkParamsAudio;
begin
Params.OwnerId( 415730216 );
Params.AlbumId( 86751037 );
if VK.Audio.Get(List, Params) then
try
for var i := Low(List.Items) to High(List.Items) do
Memo1.Lines.Add(List.Items[i].Artist + ' - ' + List.Items[i].Title);
finally
List.Free;
end ;
end ; Menggunakan metode walk untuk melakukan metode dengan parameter hitungan dan offset
Ini adalah siklus sederhana yang menyebabkan metode kami dengan mengatur offset. Batal memungkinkan Anda untuk menyelesaikan siklus hingga akhir dari seluruh bypass
Metode ini memungkinkan Anda untuk mendapatkan semua elemen dari metode tertentu dengan jumlah dan cukup mengimbangi untuk menulis desain standar data yang diperoleh dengan menggunakan metode yang diinginkan dalam fungsi anonim yang ditransmisikan dalam berjalan dan menunjukkan langkah memperoleh jumlah elemen.
VKAPI.Walk(
function(Offset: Integer; var Cancel: Boolean): Integer
var
Audio: TVkAudio;
Audios: TVkAudios;
Params: TVkParamsAudio;
begin
Result := 0 ; // Метод должн вернуть кол-во фактически полученных элементов
Params.Count( 100 );
Params.Offset(Offset);
if VKAPI.Audio.Get(Audios, Params) then
begin
Result := Length(Audios.Items); // Возвращение кол-во полученных элементов
for Audio in Audios.Items do
begin
// Do somethings with Audio
end ;
Audios.Free;
end
else
Cancel := True;
end , 100 ); // 100 - параметр шага запроса, должен соответстовать параметру метода "Params.Count(100);"