API ل Vkontakte
| مجموعة | ٪ |
|---|---|
| حساب | 100 |
| الإعلانات | 0 |
| AppWidgets | 0 |
| التطبيقات | 20 |
| ASR | 100 |
| صوتي | 79 |
| مصادقة | 100 |
| سبورة | 100 |
| قاعدة البيانات | 100 |
| مستندات | 100 |
| تنزيل | 100 |
| FAVE | 100 |
| أصدقاء | 100 |
| الهدايا | 100 |
| مجموعات | 100 |
| Leadforms | 0 |
| يؤدي | 0 |
| يحب | 100 |
| سوق | 100 |
| رسائل | 100 |
| خبر الأخبار | 100 |
| ملحوظات | 100 |
| إشعارات | 100 |
| طلبات | 25 |
| الصفحات | 100 |
| صور | 100 |
| البودكاست | 100 |
| استطلاعات الرأي | 100 |
| بطاقات جميلة | 0 |
| يبحث | 100 |
| يؤمن | 100 |
| الإحصائيات | 100 |
| حالة | 100 |
| تخزين | 100 |
| قصص | 100 |
| جاري | 100 |
| المستخدمون | 100 |
| utils | 100 |
| فيديو | 100 |
| حائط | 100 |
| الحاجيات | 0 |
ملحوظات
بالنسبة لبعض الإصدارات القديمة من البيئة ، يجب الإشارة إلى توجيه Old_version .
ملحوظة
لإصدارات IDE القديمة ، قم بتضمين توجيه Old_Version
1. التفويض من خلال نموذج 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. التفويض باستخدام الرمز المميز مباشرة (المستخدم أو الروبوت)
procedure TFormMain.VKAuth (Sender: TObject; Url: string; var Token: string; var TokenExpiry: Int64; var ChangePasswordHash: string);
begin
Token := ' <здесь токен> ' ;
end ; 3. التفويض باستخدام مفاتيح الخدمة (المشار إليها في مكون التصميم)
4. التفويض المباشر (بيتا)
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 .الحصول على المستخدمين
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 ;تثبيت الحالة عبر الإنترنت
if VK.Account.SetOnline then
Memo1.Lines.Add( ' online ' )
else
Memo1.Lines.Add( ' Error online ' );إنشاء منشور في مجموعة
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 ; إرسال الرسالة
Vk.Messages.Send.PeerId(Message.PeerId).Message(FAnswer).Send.Free;أو مع إنشاء لوحة المفاتيح
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 ;أو بسيط
VK.Messages.Send(PeerId, ' Текст сообщения ' , [<вложения>]);إرسال الصورة
VK.Messages.New.UserId( 58553419 ).AddPhotos([ ' D:Downloads6q8q9f.gif ' ]).Send;الحصول على تسجيلات صوتية لقائمة تشغيل (ألبوم)
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 ; باستخدام طريقة المشي لأداء الأساليب مع معلمات العد والإزاحة
هذه دورة بسيطة تسبب طريقتنا من خلال تنظيم الإزاحة. يتيح لك الإلغاء إنهاء الدورة حتى نهاية الممر بالكامل
تتيح لك هذه الطريقة الحصول على جميع عناصر طريقة معينة مع العد والإزاحة الكافية لكتابة تصميم قياسي للبيانات التي تحصل عليها باستخدام الطريقة المطلوبة داخل الوظيفة المجهولة المنقولة في المشي والإشارة إلى خطوة الحصول على عدد العناصر.
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);"