API für Vkontakte
| Gruppe | % |
|---|---|
| Konto | 100 |
| Anzeigen | 0 |
| Appwidgets | 0 |
| Apps | 20 |
| ASR | 100 |
| Audio | 79 |
| Auth | 100 |
| Planke | 100 |
| Datenbank | 100 |
| Dokumente | 100 |
| DownloadedGames | 100 |
| Favorit | 100 |
| Freunde | 100 |
| Geschenke | 100 |
| Gruppen | 100 |
| LeadForms | 0 |
| Leads | 0 |
| Mag | 100 |
| Markt | 100 |
| Nachrichten | 100 |
| Newsfeed | 100 |
| Notizen | 100 |
| Benachrichtigungen | 100 |
| Bestellungen | 25 |
| Seiten | 100 |
| Fotos | 100 |
| Podcasts | 100 |
| Umfragen | 100 |
| Hübsche Karten | 0 |
| Suchen | 100 |
| Sicher | 100 |
| Statistiken | 100 |
| Status | 100 |
| Lagerung | 100 |
| Geschichten | 100 |
| Streaming | 100 |
| Benutzer | 100 |
| Utils | 100 |
| Video | 100 |
| Wand | 100 |
| Widgets | 0 |
Notizen
Für einige alte Versionen der Umgebung ist es erforderlich, die Richtlinie von Old_version anzuzeigen.
Notiz
Für alte IDE -Versionen finden Sie die Richtlinie Old_version
1. Autorisierung durch OAuth2 -Formular
Для 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. Autorisierung direkt mit Token (Benutzer oder Bot)
procedure TFormMain.VKAuth (Sender: TObject; Url: string; var Token: string; var TokenExpiry: Int64; var ChangePasswordHash: string);
begin
Token := ' <здесь токен> ' ;
end ; 3. Autorisierung mithilfe von Serviceschlüssel (in der Designtime -Komponente angegeben)
4. Direkter Genehmigung (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 .Benutzer holen
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 ;Status online installieren
if VK.Account.SetOnline then
Memo1.Lines.Add( ' online ' )
else
Memo1.Lines.Add( ' Error online ' );Schaffung eines Beitrags in einer Gruppe
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 ; Senden der Nachricht
Vk.Messages.Send.PeerId(Message.PeerId).Message(FAnswer).Send.Free;Oder mit der Erstellung der Tastatur
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 ;Oder einfach
VK.Messages.Send(PeerId, ' Текст сообщения ' , [<вложения>]);Foto senden
VK.Messages.New.UserId( 58553419 ).AddPhotos([ ' D:Downloads6q8q9f.gif ' ]).Send;Erhalten von Audioaufnahmen einer Wiedergabeliste (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 ; Verwenden der Walk -Methode, um Methoden mit Zähl- und Offsetparametern durchzuführen
Dies ist ein einfacher Zyklus, der unsere Methode durch Regulierung von Offset verursacht. Mit Abbrechen können Sie den Zyklus bis zum Ende des gesamten Bypass beenden
Mit der Methode können Sie alle Elemente einer bestimmten Methode mit der Anzahl abrufen und ausreichen, um ein Standarddesign von Daten zu schreiben, die unter Verwendung der gewünschten Methode innerhalb der übertragenen anonymen Funktion im Walk erhalten und den Schritt zum Erhalten der Anzahl der Elemente angeben.
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);"