• نحوه کار با VKontakte API. رویکرد صحیح برای استفاده از Vkontakte API

    سلام به همه!

    من می‌خواستم اینجا با Vkontakte API کار کنم تا بتوانم حساب کاربری و گروه‌ها / عمومی‌هایم را مستقیماً از اسکریپت‌ها به طور کامل مدیریت کنم. و همه چیز در PHP است. به هر حال، برای Ruby یک Gem مناسب وجود دارد و برای PHP مقالات زیادی وجود دارد که نیمی از آنها قبلاً حاوی اطلاعات نامربوط هستند. و چه باید کرد؟

    به قول معروف کسی که جستجو می کند همیشه پیدا می کند. در وسعت GitHub، یک پروژه مناسب پیدا شد - vkPhpSdk، که کار با این شبکه اجتماعی را بسیار ساده می کند.

    برای شروع، متذکر می شوم که دو گزینه برای کار وجود دارد:

    2) با ایجاد یک برنامه کاربردی و پس از آن مجوز کاربر برای کار.

    به طور خلاصه توضیح دهید که چه تفاوت هایی وجود دارد. در حالت اول، می توانید به سادگی بدون هیچ مجوزی به API درخواست دهید و داده های مختلف را دریافت کنید. به عنوان مثال، لیست دوستان یک کاربر خاص، پیام های دیوار و غیره. تقریباً همه توابع get بدون access_token در دسترس هستند. بنابراین، انواع تجزیه کننده های مختلف و چیزهای دیگر را می توان از قبل به این شکل برش داد.

    گزینه دوم همچنین مستلزم امکان انتشار سوابق، دانلود محتوای پزشکی و به طور کلی مدیریت کامل حساب است (حتی وضعیت ها را می توان تنظیم کرد، lol). اما ایجاد آن نیز ضروری است برنامه مستقل(برنامه ای را برای وب سایت انتخاب نکنید، امکان درخواست تنظیم از آن وجود ندارد) و حقوق مشخصی را برای آن از کاربر دریافت کنید.

    بنابراین. بیایید به یک مثال از vkPhpSdk نگاه کنیم:

    api("getProfiles", array("uids" => $vkPhpSdk->getUserId()، "fields" => "uid، first_name، نام خانوادگی، نام مستعار، screen_name، photo_big"،)); echo "نمایه من:(br/)"; پژواک "(پیش)"؛ //فقط تجزیه کننده سایت خراب است، فکر می کنم می توانید حدس بزنید که چه کاری باید انجام شود =) print_r($result); echo "(/pre)"؛ ?>

    در اینجا ما به سادگی اطلاعات مربوط به کاربر را دریافت می کنیم. فیلدها در درخواست مشخص شده اند.

    autorize() === true) (// Init vk.com SDK $vkPhpSdk = new VkPhpSdk(); $vkPhpSdk->setAccessToken($oauth2Proxy->getAccessToken())؛ $vkPhpSdk->-SetUserId >getUserId ())؛ // تماس API - دیوار پست $result = $vkPhpSdk->api("wall.post", array("owner_id" => $vkPhpSdk->getUserId(), "message" => "خوش آمدید به vkPhpSdk!"،))؛ اکو "پاسخ به پست دیوار: (br /)"؛ اکو "(پیش)"؛ print_r($result)؛ اکو "(/pre)"؛ ) در غیر این صورت echo "خطا رخ داد"؛ ?>

    و در اینجا ما در حال ارسال پیامی برای کاربر روی دیوار هستیم. پس از اینکه وی با این کد وارد صفحه شد، درخواست حقوق از برنامه ظاهر می شود. اگر کاربر موافقت کند، یک پست روی دیوار او ارسال می شود.

    Client_id و client_secret را می توان هنگام ایجاد یک برنامه به دست آورد

    در پارامتر scope، توابع مجوز اجرای مورد نیاز برنامه را دریافت می کنند

    در این مثال، من تمام توابع از جمله آفلاین را نوشته ام. ویژگی این تابع این است که وقتی یک access_token دریافت کردید، به سادگی می توانید آن را در $vkPhpSdk->setAccessToken قرار دهید و حتی Oauth2Proxy را هم صدا نکنید. در نتیجه، برنامه با حقوق یک کاربر مجاز کار می کند تا زمانی که رمز عبور را تغییر دهد. اگر یک ربات بنویسید و هنگامی که آن را مجاز کنید، آن را از روی اسکریپت کنترل خواهید کرد، این کار مفید خواهد بود.

    یه جورایی اینجوری همانطور که می بینید، همه چیز در واقع بسیار ساده است. موفق باشید! =)

    شبکه های اجتماعی به ابزاری ضروری برای ارتقای وب سایت تبدیل شده اند. برای تبلیغ سایت از طریق شبکه های اجتماعی. شبکه باید یک گروه یا صفحه از این سایت ایجاد کند. مشترکین به دست آورید، اخبار را روی دیوار ارسال کنید و موارد دیگر (این موضوع برای یادداشت جداگانه است). بسیاری از این فرآیندها را می توان با استفاده از API (Application Programming Interface) شبکه اجتماعی مربوطه خودکار کرد. در این یادداشت، نحوه اتصال به vk api (vkontakte)، نحوه شروع کار با vk api و همچنین چند نمونه از کار با api vkontakte را بررسی خواهم کرد.

    ایجاد یک برنامه VKontakte

    و بنابراین بیایید شروع کنیم. Vk api روش‌های زیادی دارد، اما یکی از تفاوت‌های اصلی آنها این است که برای درخواست از VK api از طریق برخی روش‌ها، یک کلید دسترسی ویژه - یک نشانه (access_token) مورد نیاز است. با ایجاد اپلیکیشن خود می توانید آن را دریافت کنید. چندین نوع برنامه به ما پیشنهاد می شود، اما من نوع Standalone را انتخاب می کنم. من به اندازه کافی آن را دارم. برای شروع ایجاد یک برنامه، پیوند را دنبال کرده و وارد پنجره بعدی شوید.


    در اینجا نوع و نام برنامه خود را انتخاب می کنیم. ما اتصال برنامه را فشار می دهیم و یک پیام کوتاه با یک کد به شماره تلفن متصل به حساب VK که از آن برنامه را ایجاد می کنیم دریافت می کنیم. آن را وارد کرده و به پنجره بعدی بروید. در این پنجره به تب تنظیمات بروید.


    در تب تنظیمات، فیلدهایی با نام شناسه اپلیکیشن و کلید امنیتی را می بینیم. این داده ها را در جایی یادداشت می کنیم. من هیچ کار دیگری در برگه ها انجام ندادم. وضعیت برنامه در موقعیت غیرفعال باقی می ماند. روی ذخیره تنظیمات کلیک کنید. تمام است، ما یک برنامه VKontakte ایجاد کرده ایم.

    گرفتن توکن (access_token) api VK

    https://oauth.vk.com/authorize?client_id= &نمایش= [نمای پنجره]&redirect_uri=https://oauth.vk.com/blank.html&scope= [حقوق برنامه]&response_type=token&v=5.52

    • client_id - شناسه برنامه ما قبلاً دریافت شده است.
    • نمایش - نوع پنجره ای که مجوز در آن انجام می شود. می تواند صفحه، پاپ آپ، لمسی و wap باشد
    • دامنه - حقوق دسترسی برنامه ما در مورد داده های کاربر. اطلاعات بیشتر در مورد حقوق در زیر

    حقوق برنامه VK نسبت به یک کاربر خاص را می توان به صورت متنی و دیجیتال تنظیم کرد. در متن مانند scope = دوستان، پیام ها، گروه ها خواهد بود. با این خط کد، به برنامه vk اجازه دسترسی به دوستان، پیام ها و گروه های کاربر را داده ایم. همین حقوق به صورت دیجیتال تنظیم شده است. برای هر قانون یک بیت ماسک و مجموع این ماسک ها وجود دارد و به برنامه اجازه می دهد تا اقدامات خاصی را انجام دهد. به عنوان مثال، دوستان مناسب (+2)، پیام‌ها (+4096)، گروه‌ها (+262144)، در نتیجه مجموع ماسک‌های بیتی 266242 و کد scope=266242 مشابه scope=دوستان، پیام‌ها خواهد بود. ،گروه ها . من می خواهم به راست آفلاین توجه ویژه ای داشته باشم. تنظیم این سمت راست باعث می شود توکنی که دریافت می کنیم بی نهایت باشد. اگر این حق پس از یک زمان مشخص تنظیم نشود، رمز باید دوباره دریافت شود. در اینجا می توانید در مورد حقوق برنامه VK بیشتر بخوانید. در نتیجه، بیایید یک آدرس برای دریافت رمز برای یک برنامه با حقوق دسترسی به دوستان، پیام ها و گروه های کاربری و همچنین با یک توکن جاودانه بسازیم. اجازه دهید شناسه برنامه 123456 باشد. این آدرس به شکل زیر خواهد بود:

    https://oauth.vk.com/authorize?client_id=123456&display=page&redirect_uri=https://oauth.vk.com/blank.html& scope=friends,messages,groups,offline&response_type=token&v=5.52


    ما اقدام را تأیید می کنیم و با یک اخطار به صفحه می رسیم، رمز دریافتی خود را از نوار آدرس مرورگر می گیریم. پس از #access_token= خواهد بود، کد expires_in=0 به ما می گوید که توکن (access_token) api vk جاودانه است. بر این اساس user_id= شناسه کاربری است که توکن را برای او دریافت کرده ایم.

    بیایید به تنظیمات حساب کاربری در تب تنظیمات برنامه برویم و برنامه خود را ببینیم.


    اکنون همه چیز را برای کار با api VKontakte آماده کرده ایم.

    نمونه هایی از کار با api vk

    برای کار با api VK از زبان برنامه نویسی php استفاده می کنم. بنابراین در php مثال هایی می زنم. برای انجام هر کاری باید درخواستی به api vk ارسال کنیم. همچنین می توانیم از طریق نوار آدرس مرورگر درخواست ارسال کنیم. یعنی درخواست یک آدرس url خاص با پارامترهای مشخصی است که در آن مشخص شده است. نحو برای کامپایل چنین URL در زیر توضیح داده شده است.

    Https://api.vkontakte.ru/ روش/[روش نامیده می‌شود]؟[پارامترهای روش نامیده می‌شود]

    لیست متدهای api vk اینجاست. فعلاً روی این بیشتر تمرکز نمی کنیم، سپس با مثال های واقعی همه چیز روشن می شود. فقط باید بفهمیم که چگونه با استفاده از php درخواستی را به api VKontakte ارسال کنیم. برای انجام این کار، از تابع php file_get_contents و همچنین تابع json_decode استفاده خواهیم کرد، زیرا پاسخ را از سرور با فرمت json دریافت خواهیم کرد. در اینجا یک قالب برای اجرای یک درخواست به VK در php آمده است.

    $result=json_decode(file_get_contents("https://api.vkontakte.ru/ روش/[روش فراخوانی شده]؟[پارامترهای روش فراخوانی شده]"));

    خوب، اکنون چند نمونه از کار با api vk

    $useid=12345; $mytoken=56789; /*یک شی را با جنسیت و تاریخ تولد کاربر برمی گرداند*/ $request_params = array("user_id" => $userid, "fields" => "sex", "fields" => "bdate"); $get_params = http_build_query($request_params); $result = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); /*بررسی اینکه آیا کاربر از VK منع شده است*/ $request_params = array("user_id" => $user_id, "fields" => "غیرفعال شده"); $get_params = http_build_query($request_params); $result = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); if(isset($result->response->غیرفعال))( echo "Page frozen or deleted"; ) /*send message to user with user_id=222222*/ $mesage="سلام، چطوری؟"; //رشته کدگذاری $msg=urlencode($mesage); $result = json_decode(file_get_contents("https://api.vkontakte.ru/method/ messages.send?user_id=222222& message=".$msg."&access_token=".$mytoken)); /* کاربر با user_id=222222 را به عنوان دوست دعوت کنید*/ $mesage="بیا با هم دوست باشیم"; $msg=urlencode($mesage); $result=json_decode(file_get_contents("https://api.vkontakte.ru/ method/friends.adduser_id=222222& text=".$msg."&access_token=".$mytoken));

    api روش های زیادی دارد، بنابراین به شما توصیه می کنم مستندات را مطالعه کنید. البته پرس و جوها همیشه به درستی اجرا نمی شوند و کدهای خطا را برمی گردانند. خطاها را می توان در اینجا مشاهده کرد. بنابراین دقیقاً می توانید به سادگی به api vk متصل شوید و اقدامات خود را در تماس به طور خودکار انجام دهید.

    اغلب از من می پرسند نحوه کار با API. محبوب ترین کار مربوط به API، است - کار با VKontakte API. در این مقاله نشان خواهم داد نحوه کار با VKontakte APIو مهمتر از همه، این را به شما نشان خواهم داد همه API ها بر اساس یک اصل کار می کنند.

    اینجا روشکه برای انجام آن باید انجام دهید شروع به کار با هر API کنید:

    1. پیدا کردن مستنداتبه عنوان مورد نیاز API.
    2. نگاه کن نمونه های اتصال API. در اینجا ممکن است گزینه های مختلفی وجود داشته باشد. به عنوان مثال، در یک سرویس آنها به یک کلید مخفی نیاز دارند که پس از ثبت نام صادر شود. در سرویس دوم، همه درخواست‌ها به کلیدهای مخفی نیاز ندارند. در سرویس سوم، هم با کلید مخفی و هم گزینه های بدون کار وجود دارد. گاهی اوقات، کلید مخفی فراخوانی می شود نشانه.
    3. کپی 🀄 کد ساده آمادهاز سایت مستندات و بررسی عملکرد آن. اگر کار نکرد، به دنبال خطا در خود بگردید، زیرا بعید است که سرویس آن را داشته باشد.
    4. پیدا کردندر مستندات روشکه مشکل شما را حل می کند
    5. با استفاده از مثال ها و شرح روش، درخواست صحیح را به API ارسال کنید.
    6. بسته به فرمت پاسخ، آن را به " تجزیه کنید اجزاء"، و سپس آنچه لازم است را انجام دهید - خروجی برای کاربر، ذخیره در یک فایل، ارسال به پایگاه داده و موارد مشابه.

    و به عنوان نمونه ای از پیروی از این دستورالعمل به تحلیل می پردازیم API VKontakte. بنابراین:

    1. پیوند به مستندات.
    2. در این مورد، روش‌هایی وجود دارند که عمومی هستند و بنابراین نیازی به توکن ندارند، اما روش‌هایی هستند که به آن نیاز دارند.
    3. در این مورد، من نمونه هایی در زبان خاصی پیدا نکردم. شاید آنها هستند، اما به وضوح در معرض دید نیستند. معمولا، در APIبرای هر روش نمونه هایی به زبان های مختلف وجود دارد.
    4. می خواهیم بیرون بیاوریم 5 پست اخیر از دیوار یک کاربر خاص، و سپس آنها را در سایت خود نمایش دهید. روشی که ما نیاز داریم.

    حالا ما باید یک درخواست به API ارسال کنید، با استفاده از توضیحات روش. ما آن را از طریق انجام خواهیم داد PHP:

    $wall = file_get_contents("https://api.vk.com/method/wall.get?v=5.3&filter=others&domain=myrusakov&count=5");
    print_r($wall);
    ?>

    در این مورد من استفاده می کنم API 5.3 (v=5.3، من تمام رکوردها را بدون توجه به نویسنده نمایش می دهم ( فیلتر = دیگران) از صفحه شما ( دامنه=myrusakov) در مقدار 5 چیزها ( تعداد=5). من فکر می کنم که اینجا همه چیز بسیار شفاف است.

    ما پاسخی در قالب دریافت کردیم JSON، و اکنون باید به آخرین نکته برویم - پاسخ را تجزیه کنید " اجزاءدر مرحله بعد، پست ها را از روی دیوار به شکلی کم و بیش خوانا در صفحه وب سایت خود نمایش خواهیم داد. کد پی اچ پی:

    $wall = file_get_contents("http://api.vk.com/method/wall.get?v=5.3&filter=others&domain=myrusakov&count=5"); // فرستادن درخواست
    $wall = json_decode($wall); // رشته JSON را به آرایه تبدیل کنید
    $wall = $wall->response-> items; // آرایه ای از نظرات را دریافت کنید
    برای ($i = 0؛ $i< count($wall); $i++) {
    پژواک"

    ".($i + 1).". ".$wall[$i]->text."
    ".date("Y-m-d H:i:s", $wall[$i]->date)."

    "؛ // رکوردهای خروجی
    }
    ?>

    همانطور که می بینید، همه چیز بسیار ساده است. سخت ترین قسمت تجزیه آن به اجزای سازنده آن است. من خروجی را ترجیح می دهم APIاز طریق print_r، و فقط پس از آن پردازش این را بنویسید. اگر چه می توانید نمونه ای از پاسخ را در توضیح روش ببینید و سپس تجزیه کننده را بنویسید.

    بیایید با اصول اولیه شروع کنیم: API چیست؟ مخفف عبارت Application Programming Interface یا رابطی برای برنامه های برنامه نویسی است. به نظر می رسد این نام برای خود صحبت می کند، اما بهتر است توضیح دقیق تری در نظر بگیرید.

    همانطور که قبلا ذکر شد، API، اول از همه، یک رابط است. رابطی که به توسعه دهندگان این امکان را می دهد تا از بلوک های آماده برای ساخت یک برنامه استفاده کنند. در مورد توسعه برنامه های کاربردی تلفن همراه، یک کتابخانه برای کار با "خانه هوشمند" می تواند به عنوان یک API عمل کند - تمام تفاوت های ظریف در کتابخانه پیاده سازی شده است و شما فقط به این API در کد خود مراجعه می کنید.

    در مورد برنامه‌های کاربردی وب، API می‌تواند داده‌ها را در قالبی غیر از HTML استاندارد برگرداند، که استفاده از آن را هنگام نوشتن برنامه‌های خود راحت می‌کند. API های عمومی شخص ثالث اغلب داده ها را در یکی از دو فرمت برمی گرداند: XML یا JSON. اگر تصمیم به ایجاد یک API برای برنامه خود دارید، به یاد داشته باشید که JSON بسیار مختصرتر و راحت‌تر از XML خوانده می‌شود و سرویس‌هایی که دسترسی به داده‌ها را در قالب XML فراهم می‌کنند، دومی را به تدریج حذف می‌کنند.

    API در برنامه های کاربردی وب با مثال

    یک برنامه - برای مثال Github - دارای API خاص خود است که سایر توسعه دهندگان می توانند از آن استفاده کنند. نحوه استفاده از آن بستگی به امکاناتی دارد که API فراهم می کند و تخیل توسعه دهندگان چقدر خوب کار می کند. به عنوان مثال، اجازه می دهد تا اطلاعاتی در مورد کاربر، آواتار او، خوانندگان، مخازن و بسیاری از اطلاعات مفید و جالب دیگر به دست آورید.

    به طور مشابه، می توانید درخواست را به هر زبانی از جمله روبی ارسال کنید. پاسخ به درخواست چیزی شبیه به این خواهد بود:

    ( "login" : "Freika" , "id" : 3738638, "avatar_url" : "https://avatars.githubusercontent.com/u/3738638?v=3", "gravatar_id" : "" , "url" : "https://api.github.com/users/Freika", "html_url" : "https://github.com/Freika" , "followers_url" : "https://api.github.com/users/Freika/followers", "following_url" : "https://api.github.com/users/Freika/following(/other_user)", "gists_url" : "https://api.github.com/users/Freika/gists(/gist_id)", "starred_url" : "https://api.github.com/users/Freika/starred(/owner)(/repo)", "subscriptions_url" : "https://api.github.com/users/Freika/subscriptions", "organizations_url" : "https://api.github.com/users/Freika/orgs", "repos_url" : "https://api.github.com/users/Freika/repos", "events_url" : "https://api.github.com/users/Freika/events(/privacy)", "received_events_url" : "https://api.github.com/users/Freika/received_events", "نوع" : "کاربر" , "site_admin" : false , "name" : "Evgeniy" , "company" : "" , "blog" : "http://frey.su/" , "location" : " Barnaul" , "email" : "" , "hireable" : true، "bio" : null، "public_repos" : 39، "public_gists" : 13، "followers" : 15، "following" : 21، "created_at" : "2013-03-01T13:48:52Z" , "updated_at" : "2014-12-15T13:55:03Z" )

    همانطور که از بلوک بالا می بینید، پاسخ شامل یک ورود، یک آواتار، پیوند به نمایه در سایت و در API، وضعیت کاربر، تعداد مخازن عمومی و سایر اطلاعات مفید و جالب است.

    یک API کافی نیست

    ایجاد یک API تمام عیار برای برنامه شما تنها نیمی از کار است. چگونه می خواهید به API دسترسی پیدا کنید؟ کاربران شما چگونه به آن دسترسی خواهند داشت؟

    اولین چیزی که به ذهن خطور می کند یک سری درخواست های معمول HTTP برای به دست آوردن اطلاعات مورد نظر است و این پاسخ اشتباه است. واضح ترین راه در این مورد راحت ترین و ساده ترین راه نیست. ایجاد یک کتابخانه ویژه برای کار با اینترفیس بسیار منطقی تر خواهد بود، که تمام راه های لازم برای دریافت و ارسال اطلاعات با استفاده از API را شرح می دهد.

    بیایید یک بار دیگر از Github برای مثال استفاده کنیم: برای کار با API این سرویس عالی (و رابط آن امکانات گسترده ای را ارائه می دهد)، چندین کتابخانه به زبان های مختلف ایجاد شده است، به عنوان مثال gem . در مستندات چنین کتابخانه‌هایی (و گوهر ارائه شده به عنوان مثال)، هر توسعه‌دهنده علاقه‌مندی می‌تواند تمام راه‌های لازم برای دریافت اطلاعات از Github را بیابد و آن‌ها را از طریق API سرویس بازگرداند.

    بنابراین، اگر API خود را ایجاد می کنید، به فکر ایجاد کتابخانه هایی برای کار با آن در رایج ترین زبان ها نیز باشید. و آماده باشید که در سطح معینی از تقاضا برای برنامه شما، شخص دیگری می تواند کتابخانه خود را برای کار با API شما ایجاد کند. این خوبه.

    لینک های مفید

    در مقالات بعدی، در مورد چگونگی ایجاد صحیح یک API، اطمینان از امنیت آن و محدود کردن دسترسی به برخی از اطلاعات صحبت خواهیم کرد.

    هی هابر!

    در یک زمان، با گشت و گذار در اینترنت برای استفاده منطقی از Vkontakte API، چیزی قابل فهم پیدا نکردم، تنها کتابخانه هایی که پیدا کردم بدون استفاده از روش های پذیرفته شده عمومی و بدون کد زیبا پیاده سازی شدند. تصمیم گرفتم سوء تفاهم را اصلاح کنم و کتابخانه خودم را برای کار با Vkontakte API نوشتم.
    سوزاندن جزئیات و رویکردهای تحت حاکمیت.

    اتفاقاً VK API کاملاً خوب پیاده سازی شده است، به استثنای برخی نکات غیرمنطقی که بعداً به آنها اشاره خواهم کرد. اما سخنرانی، امروز نه در مورد کیفیت، بلکه در مورد کاربرد خاص.

    فوراً لازم است رزرو کنید، علاوه بر توضیحات، تکه هایی از کدهای کاری کتابخانه خود را ارائه خواهم کرد که لینک آن را در پایان مقاله ارائه خواهم کرد. این کتابخانه روی آخرین نسخه پایدار 5.5 کار می کند، اگر ژنراتورها را از دریافت دسته ای حذف کنید، باید روی 5.4 کار کند.

    • مجوز سرور (به اصطلاح مجوز سایت ها)
    • مجوز مشتری (مستقل)
    • مجوز سرور برنامه
    جالب ترین مورد برای توسعه دهنده دو مورد اول است. مورد اول به شما اجازه می دهد تا یک کاربر را در سایت مجاز کنید و کلید دسترسی او را دریافت کنید، مورد دوم به شما اجازه می دهد تا برنامه خود را مجوز دهید، مانند Dekstop یا Mobile. با نگاهی به آینده، گزینه دوم فرصت های بزرگی را در اختیار ما قرار می دهد و گزینه اول، تنها بخش کوچکی از آنهاست.

    الگوریتم برای به دست آوردن در حالت اول به نکات زیر کاهش می یابد:

    • ما پیوندی را برای مجوز کاربر نمایش می دهیم که مطابق با اسناد قالب بندی می کنیم
    • کاربر از آن عبور می کند و وارد می شود
    • کاربر با کد پارامتر GET به REDIRECT_URI برنامه ما هدایت می شود
    • برنامه ما نیاز به درخواست API حاوی کد برای دریافت کلید دسترسی کاربر دارد.
    • API یا با یک شی حاوی کلید دسترسی یا با یک خطا پاسخ می دهد.

    نمونه کدی که با آن می توانید این کار را انجام دهید کار دشواری نیست.

    $auth = getjump\Vk\Auth::getInstance(); $auth->setAppId("3470411")->setScope("SCOPE")->setSecret("SECRET CODE")->setRedirectUri("http://localhost/test.php"); $token=$auth->startCallback(); printf("LINK", $auth->getUrl());

    فرض بر این است که دامنه ما لوکال هاست است و فایل فعلی test.php است. اگر همه چیز خوب پیش رفت، متغیر $token ما حاوی کلید دسترسی کاربر مجاز خواهد بود.

    از لحظه ای که کلید دسترسی داریم، می توانیم اجرا کنیم درخواست های API. منطق کلی درخواست ساده است، شما یک درخواست دستکاری شده خاص را به URL API ارسال می کنید. درخواست باید حاوی نام متد و آرگومان ها باشد.

    api.vk.com/method/METHOD_NAME?PARAMETERS&access_token=ACCESS_TOKEN

    فهرست روش ها، این یکی از چیزهای غنی API است. در آن می توانید روش هایی را ملاقات کنید که برای کار آنها به کلید دسترسی نیاز ندارند، بنابراین می توانید بدون دریافت کلید با آنها تماس بگیرید.

    هنگام استفاده از کتابخانه، باید یک شی پایه مانند زیر ایجاد کنیم:
    $vk = getjump\Vk\Core::getInstance()->apiVersion("5.5")->setToken($token);

    چند نمونه از پرس و جوها با استفاده از کتابخانه:

    در هر کدام دقیقاً 100 شیء از تابع ناشناس عبور می کند که حاوی داده های مربوط به کاربران از 1 تا 100 است. توجه داشته باشید که اگر فراخوانی تابع را حذف کنیم، هیچ درخواستی رخ نمی دهد، زیرا یک شی برگردانده می شود که دارای جادوی __call و __get است. روش‌های نادیده گرفته می‌شوند، که به ما امکان می‌دهد زمانی که واقعاً به آن نیاز داریم درخواستی ارائه کنیم.
    $vk-> request("users.get", ["user_ids" => range(1, 100)])->each(function($i, $v) ( if($v->last_name == "" ) return؛ $v->last_name را چاپ کنید.
    "; });

    یکی از چیزهایی که استفاده از ژنراتورها را در اختیار ما قرار می دهد، ترسیم دسته ای است. یعنی فقط زمانی که به آن نیاز داشته باشیم داده ها را دریافت می کنیم. مثال زیر به ما امکان می دهد همه پیام های خود را در 100 درخواست بازیابی کنیم. مراقب باشید، روشاز شما می‌خواهد که حقوق پیام‌ها، برنامه‌های کاربردی مستقل، همان مجوز و بر این اساس، انتقال کلید دسترسی را داشته باشید.
    foreach($vk-> request("messages.get")->batch(100) به عنوان $data) ($data->each(function($i, $m) ( if(isset($m->body) ) چاپ $m->body .PHP_EOL; ))؛ )

    روش خوب، که در API یافت می شود - اجرا کردن. این یک پارامتر کد را به عنوان آرگومان می گیرد، کد نوعی شبه جاوا اسکریپت است که به ما امکان می دهد کد خود را در سمت سرور اجرا کنیم، و همچنین به ما اجازه می دهد تا رویه های ذخیره شده ای را که می توانیم هنگام ویرایش برنامه خود ایجاد کنیم، اجرا کنیم.

    من نتوانستم این مورد را نادیده بگیرم و آن را در کتابخانه پیاده کردم. به طور خلاصه، به شما این امکان را می دهد که چندین پرس و جو را به صورت یکجا اجرا کنید. نمونه کد زیر را ببینید.

    $js1 = $vk->request("messages.get", ["count" => 200, "offset" =>0 * 200])->toJs(); // یک شی VkJs را برمی گرداند $js2 = $vk->request("messages.get", ["count" => 200, "offset" =>1 * 200])->toJs(); $js3 = $vk-> request("messages.get"، ["count" => 200، "offset" =>2 * 200])->toJs(); $js4 = $vk->request("messages.get", ["count" => 200, "offset" =>3 * 200])->toJs(); $js1 ->append($js2) // js2 را به js1 اضافه می‌کنیم ->append($js3) ->append($js4) ->execute() // می‌خواهیم این را اجرا کنیم (در واقع یک RequestTransaction برمی‌گرداند) - >response //درخواست فقط اکنون اجرا می شود -> هر (تابع ($i, $v) //اولین تابع ناشناس برای عبور از تمام عناصر آرایه دریافتی از execute مورد نیاز است (آرایه 4 عنصری، 4 درخواست‌ها) ($v->each( function($c, $d) ( // در کنار همه 200 پیام در هر آرایه، if(isset($d->body)) چاپ $d->body؛ // در صورت وجود چنین فیلدی پیام را چاپ کنید ))) );

    همانطور که قول داده بودیم، یکی از آن سوءتفاهم هایی است که ممکن است با آن مواجه شوید نسخه فعلی API(5.21)، روش