• VKontakte API'si ile nasıl çalışılır. Vkontakte API'sini kullanmaya doğru yaklaşım

    Herkese selam!

    Hesabımı ve gruplarımı / genelleri doğrudan komut dosyalarından tamamen yönetebilmek için burada Vkontakte API ile çalışmak istedim. Ve her şey PHP'de. Bu arada, Ruby için uygun bir Gem var ve PHP için yarısı zaten alakasız bilgiler içeren birçok makale var. Peki ne yapmalı?

    Söylendiği gibi arayan her zaman bulur. GitHub'un genişliğinde uygun bir proje bulundu - bu sosyal ağ ile çalışmayı büyük ölçüde kolaylaştıran vkPhpSdk

    Başlangıç ​​​​olarak, iş için iki seçeneğin olduğunu not ediyorum:

    2) Bir uygulamanın oluşturulması ve ardından iş için kullanıcının yetkilendirilmesi ile.

    Farklılıkların neler olduğunu kısaca açıklayınız. İlk durumda, API'ye herhangi bir yetkilendirme olmadan istekte bulunabilir ve çeşitli veriler alabilirsiniz. Örneğin, belirli bir kullanıcının arkadaşlarının listesi, duvardan gelen mesajlar vb. Hemen hemen tüm get işlevleri, erişim_tokeni olmadan kullanılabilir. Bu nedenle, her türlü farklı ayrıştırıcı ve diğer şeyler zaten bu şekilde kesilebilir.

    İkinci seçenek aynı zamanda kayıt yayınlama, tıbbi içerik indirme ve genel olarak tam teşekküllü hesap yönetimi (durumlar bile ayarlanabilir, hahaha) olasılığını da ima eder. Ama aynı zamanda yaratmak da gerekli Bağımsız uygulama(Web sitesi için bir uygulama seçmeyin, ondan set istekleri yapmak mümkün değildir) ve kullanıcıdan bunun için belirli hakları alın.

    Bu yüzden. VkPhpSdk'den bir örneğe bakalım:

    api("getProfiles", array("uids" => $vkPhpSdk->getUserId(), "fields" => "uid, ad, soyad, takma ad, ekran_adı, fotoğraf_büyük",)); echo "Profilim:(br/)"; echo "(ön)"; //sadece sitedeki ayrıştırıcı bozuk, sanırım ne yapılması gerektiğini tahmin edebilirsiniz =) print_r($result); echo "(/pre)"; ?>

    Burada sadece kullanıcı hakkında veri alıyoruz. Alanlar istekte belirtilir.

    Authorize() === true) ( ​​// Init vk.com SDK $vkPhpSdk = new VkPhpSdk(); $vkPhpSdk->setAccessToken($oauth2Proxy->getAccessToken()); $vkPhpSdk->setUserId($oauth2Proxy- >getUserId ()); // API çağrısı - duvar yazısı $result = $vkPhpSdk->api("wall.post", array("owner_id" => $vkPhpSdk->getUserId(), "message" => "Hoşgeldiniz) vkPhpSdk'ye!",)); echo "Duvar yazısı yanıtı: (br /)"; echo "(pre)"; print_r($result); echo "(/pre)"; ) else echo "Hata oluştu"; ?>

    Ve burada kullanıcıya duvarda bir mesaj gönderiyoruz. Bu kodla sayfaya girdikten sonra uygulamadan hak talebinde bulunulacaktır. Kullanıcı kabul ederse duvarına bir gönderi yayınlanır.

    Bir uygulama oluştururken Client_id ve client_secret elde edilebilir

    Kapsam parametresinde, uygulamanın gerektirdiği işlevleri yürütme izni iletilir.

    Bu örnekte çevrimdışı dahil tüm fonksiyonları yazdım. Bu işlevin özelliği, bir erişim_tokeni aldığınızda, onu basitçe $vkPhpSdk->setAccessToken'a itebilmeniz ve hatta Oauth2Proxy'yi çağırmamanızdır. Sonuç olarak uygulama, şifreyi değiştirene kadar yetkili bir kullanıcının haklarıyla çalışacaktır. Bir bot yazarsanız ve onu yetkilendirdikten sonra onu komut dosyasından kontrol ederseniz bu kullanışlı olacaktır.

    Bir şekilde böyle. Gördüğünüz gibi aslında her şey çok basit. İyi şanlar! =)

    Sosyal ağlar web sitesi tanıtımı için önemli bir araç haline geldi. Siteyi sosyal medya aracılığıyla tanıtmak. ağ bu sitenin bir grubunu veya sayfasını oluşturmalıdır. Abone kazanın, duvara haber gönderin ve çok daha fazlasını yapın (bu ayrı bir not konusu). Bu süreçlerin çoğu, ilgili sosyal ağın API'si (Uygulama Programlama Arayüzü) kullanılarak otomatikleştirilebilir. Bu notta vk api'ye (vkontakte) nasıl bağlanılacağını, vk api ile çalışmaya nasıl başlanacağını analiz edeceğim ve ayrıca api vkontakte ile çalışmaya bazı örnekler vereceğim.

    VKontakte uygulaması oluşturma

    Öyleyse başlayalım. Vk api'nin birçok yöntemi vardır, ancak bunların temel farklarından biri, bazı yöntemlerle VK api'ye istekte bulunmak için özel bir erişim anahtarının (bir belirteç (access_token)) gerekli olmasıdır. Başvurunuzu oluşturarak alabilirsiniz. Bize çeşitli türde uygulamalar sunuluyor, ancak ben Bağımsız türü seçiyorum. Bende yeterince var. Bir uygulama oluşturmaya başlamak için bağlantıyı takip edin ve bir sonraki pencereye geçin.


    Burada uygulamamızın türünü ve adını seçiyoruz. Uygulamayı bağla tuşuna basıyoruz ve uygulamayı oluşturduğumuz VK hesabına bağlı telefon numarasına kod içeren bir SMS alıyoruz. Girin ve bir sonraki pencereye gidin. Bu pencerede ayarlar sekmesine gidin.


    Ayarlar sekmesinde uygulama ID'sinin adının ve güvenlik anahtarının bulunduğu alanları görüyoruz. Bu verileri bir yere yazıyoruz. Sekmelerde başka hiçbir şey yapmadım. Uygulama durumu devre dışı konumunda bırakılır. Ayarları kaydet'i tıklayın. İşte bu, bir VKontakte uygulaması oluşturduk.

    Bir belirteç (access_token) API VK alma

    https://oauth.vk.com/authorize?client_id= &görüntü= [pencere görünümü]&redirect_uri=https://oauth.vk.com/blank.html&scope= [başvuru hakları]&response_type=token&v=5,52

    • client_id - Uygulamamızın daha önce alınan kimliği.
    • ekran - yetkilendirmenin gerçekleşeceği pencere türü. Sayfa, açılır pencere, dokunma ve wap olabilir
    • kapsam - uygulamamızın kullanıcı verilerine ilişkin erişim hakları. Haklar hakkında daha fazla bilgiyi aşağıda bulabilirsiniz.

    VK uygulamasının belirli bir kullanıcıya ilişkin hakları metin ve dijital biçimde ayarlanabilir. Metinde kapsam=arkadaşlar,mesajlar,gruplar gibi görünecektir. Bu kod satırı ile vk uygulamasının kullanıcının arkadaşlarına, mesajlarına ve gruplarına erişmesine izin verdik. Aynı haklar dijital biçimde de belirlenmiştir. Her kural için bir bit maskesi ve bu maskelerin toplamı vardır ve uygulamanın belirli eylemleri gerçekleştirmesine olanak tanır. Örneğin doğru arkadaşlar(+2), mesajlar(+4096), gruplar(+262144), bunun sonucunda bit maskelerinin toplamı 266242 olacak ve kapsam=266242 kodu kapsam=arkadaşlar,mesajlara benzer olacaktır. ,gruplar. Çevrimdışı haklara özellikle dikkat etmek istiyorum. Bunu doğru ayarlamak aldığımız jetonu sonsuz hale getirir. Bu hakkın belirli bir süre sonra ayarlanmaması durumunda tokenın tekrar alınması gerekecektir. VK uygulamasının hakları hakkında daha fazla bilgiyi buradan edinebilirsiniz. Sonuç olarak, arkadaşlara, mesajlara ve kullanıcı gruplarına erişim haklarına sahip ve ölümsüz bir jeton içeren bir uygulama için jeton almak için bir adres oluşturalım. Uygulama kimliğinin 123456 olmasına izin verin. Bu adres şu şekilde görünecektir:

    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


    İşlemi onaylayıp uyarı ile sayfaya geliyoruz, aldığımız jetonumuzu tarayıcının adres çubuğundan alıyoruz. #access_token= 'dan sonra olacak, Expires_in=0 kodu bize token (access_token) api vk'sinin ölümsüz olduğunu söyleyecektir. Buna göre user_id=, adına token aldığımız kullanıcının kimliğidir.

    Uygulama ayarları sekmesinden hesap ayarlarına gidip uygulamamızı görelim.


    Artık VKontakte api ile çalışmaya hazır her şeye sahibiz.

    API vk ile çalışma örnekleri

    API VK ile çalışmak için php programlama dilini kullanıyorum. Bu nedenle php'de örnekler vereceğim. Herhangi bir işlemi gerçekleştirmek için api vk'ye bir istek göndermemiz gerekiyor. Tarayıcının adres çubuğu aracılığıyla da istek gönderebiliriz. Yani istek, içinde belirli parametrelerin belirtildiği belirli bir URL adresidir. Böyle bir URL'yi derlemeye yönelik sözdizimi aşağıda açıklanmıştır.

    Https://api.vkontakte.ru/ method/[ARALANAN YÖNTEM]?[ARALANAN YÖNTEM PARAMETRELERİ]

    Api vk yöntemlerinin listesi burada, şimdilik buna daha fazla odaklanmayacağız, daha sonra gerçek örneklerle her şey netleşecek. Geriye sadece php kullanarak VKontakte api'ye nasıl istek gönderileceğini bulmak kalıyor. Bunu yapmak için, sunucudan json formatında yanıt alacağımızdan dolayı, json_decode fonksiyonunun yanı sıra file_get_contents php fonksiyonunu kullanacağız. İşte php'de VK'ya bir istek yürütmek için bir şablon.

    $result=json_decode(file_get_contents("https://api.vkontakte.ru/ method/[ARALANAN YÖNTEM]?[ARALANAN YÖNTEM PARAMETRELERİ]"));

    peki, şimdi api vk ile çalışmaya birkaç örnek

    $useid=12345; $mytoken=56789; /*kullanıcının cinsiyeti ve doğum gününü içeren bir nesneyi döndürür*/ $request_params = array("user_id" => $userid, "fields" => "sex", "fields" => "bdate"); $get_params = http_build_query($request_params); $sonuç = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); /*kullanıcının VK'dan yasaklanıp yasaklanmadığı kontrol ediliyor*/ $request_params = array("user_id" => $user_id, "fields" => "deactivated"); $get_params = http_build_query($request_params); $sonuç = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); if(isset($result->response->deactivated))( echo "Sayfa dondu veya silindi"; ) /*kullanıcıya user_id=222222 ile mesaj gönder*/ $mesage="Merhaba, nasılsın?"; //kodlama string $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 olan kullanıcıyı arkadaş olarak davet et*/ $mesage="Arkadaş olalım"; $msg=urlencode($mesaj); $result=json_decode(file_get_contents("https://api.vkontakte.ru/ method/friends.adduser_id=222222& text = ".$msg."&access_token = ".$mytoken));

    API'nin birçok yöntemi var, bu yüzden belgeleri okumanızı tavsiye ederim. Elbette sorgular her zaman doğru şekilde çalışmaz ve hata kodları döndürmez. Hatalar burada görüntülenebilir. Böylece api vk'ye kolayca bağlanabilir ve iletişim halindeki eylemlerinizi otomatikleştirebilirsiniz.

    Bana sık sık soruluyor API ile nasıl çalışılır. İlgili en popüler görev API'si, dır-dir - VKontakte API'si ile çalışma. Bu yazıda göstereceğim VKontakte API'si ile nasıl çalışılır ve en önemlisi size bunu göstereceğim tüm API'ler aynı prensipte çalışır.

    Burada prosedür bunu yapmak için yapmanız gerekenler herhangi bir API ile çalışmaya başlayın:

    1. Bulmak dokümantasyon ihyaç olduğu gibi API'si.
    2. Bakmak API bağlantı örnekleri. Burada farklı seçenekler olabilir. Örneğin, bir hizmette kayıttan sonra verilen gizli bir anahtara ihtiyaç duyacaklar. İkinci hizmette tüm istekler gizli anahtar gerektirmez. Üçüncü hizmette hem gizli anahtarlı hem de çalışma seçenekleri bulunmaktadır. Bazen gizli anahtar denir jeton.
    3. Kopyala basit hazır kod dokümantasyon sitesinden ve çalışmasını kontrol edin. İşe yaramazsa, hatayı kendinizde arayın, çünkü hizmetin buna sahip olması pek olası değildir.
    4. Bulmak belgelerde yöntem bu sorununuzu çözer.
    5. Örnekler ve yöntem açıklaması kullanılarak, API'ye doğru isteği gönderin.
    6. Yanıtın biçimine bağlı olarak onu şu şekilde ayrıştırın: " bileşenler"ve ardından gerekeni yapın - kullanıcıya çıktı verin, bir dosyaya kaydedin, veritabanına gönderin ve benzeri.

    Bu talimatı takip etmenin bir örneği olarak, analiz edeceğiz API VKontakte. Bu yüzden:

    1. Bağlamak dokümantasyon.
    2. Bu durumda, herkese açık olan ve dolayısıyla belirteç gerektirmeyen yöntemler vardır, ancak bir belirteç gerektiren yöntemler de vardır.
    3. Bu durumda belirli bir dilde örnekler bulamadım. Belki öyledirler, ama açıkça görünürde değiller. Genellikle API'si Her yöntem için farklı dillerde örnekler bulunmaktadır.
    4. çıkarmak istiyoruz Belirli bir kullanıcının duvarından 5 yeni gönderi ve ardından bunları sitenizde görüntüleyin. İhtiyacımız olan yöntem.

    Şimdi yapmalıyız API'ye bir istek gönder yöntem açıklamasını kullanarak. Bunu aracılığıyla yapacağız PHP:

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

    Bu durumda kullanıyorum API5.3 (v=5.3), yazardan bağımsız olarak tüm kayıtları görüntülerim ( filtre=diğerleri) sayfanızdan ( alan adı=myrusakov) miktarında 5 şeyler ( sayı=5). Burada her şeyin çok şeffaf olduğunu düşünüyorum.

    formatında bir yanıt aldık. JSON ve şimdi son noktaya gitmemiz gerekiyor - " sorusunun cevabını ayrıştırın bileşenler". Daha sonra duvardaki gönderileri web sitemizin sayfasında az çok okunabilir bir biçimde görüntüleyeceğiz. PHP kodu:

    $wall = file_get_contents("http://api.vk.com/method/wall.get?v=5.3&filter=others&domain=myrusakov&count=5"); // İstek gönder
    $duvar = json_decode($duvar); // JSON dizesini bir diziye dönüştürün
    $wall = $wall->yanıt->öğeler; // Bir dizi yorum alın
    için ($i = 0; $i< count($wall); $i++) {
    Eko "

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

    "; // Çıkış kayıtları
    }
    ?>

    Gördüğünüz gibi her şey çok basit. En zor kısım onu ​​bileşen parçalarına ayırmaktır. Çıktıyı tercih ederim API'si başından sonuna kadar baskı_r ve ancak bundan sonra bunun işlenmesini yazın. Yöntemin açıklamasında cevabın bir örneğini görebilir ve ardından ayrıştırıcıyı yazabilirsiniz.

    Temel bilgilerle başlayalım: API nedir? Kısaltma, Uygulama Programlama Arayüzü veya programlama uygulamaları için bir arayüz anlamına gelir. Adın kendisi adına konuşuyor gibi görünüyor, ancak daha ayrıntılı bir açıklamayı düşünmek daha iyidir.

    Daha önce de belirtildiği gibi API her şeyden önce bir arayüzdür. Geliştiricilerin bir uygulama oluşturmak için hazır blokları kullanmasına olanak tanıyan bir arayüz. Mobil uygulamaların geliştirilmesi durumunda, "akıllı ev" ile çalışmaya yönelik bir kitaplık bir API görevi görebilir - tüm nüanslar kitaplıkta uygulanır ve siz yalnızca kodunuzda bu API'ye atıfta bulunursunuz.

    Web uygulamaları söz konusu olduğunda API, verileri standart HTML dışında bir formatta döndürebilir, bu da kendi uygulamalarınızı yazarken kullanımı kolaylaştırır. Üçüncü taraf genel API'ler çoğunlukla verileri iki biçimden birinde döndürür: XML veya JSON. Uygulamanız için bir API oluşturmaya karar vermeniz durumunda, JSON'un XML'den çok daha kısa ve kolay okunabilir olduğunu ve XML formatındaki verilere erişim sağlayan hizmetlerin XML'i aşamalı olarak kaldıracağını unutmayın.

    Örneklerle web uygulamalarında API

    Bir uygulamanın (örneğin Github) diğer geliştiricilerin kullanabileceği kendi API'si vardır. Bunu nasıl kullanacakları, API'nin sağladığı olanaklara ve geliştiricilerin hayal gücünün ne kadar iyi çalıştığına bağlıdır. örneğin kullanıcı, onun avatarı, okuyucuları, depoları ve diğer birçok yararlı ve ilginç bilgi hakkında bilgi edinilmesine olanak tanır.

    Benzer şekilde Ruby dahil herhangi bir dilde istek gönderebilirsiniz. Talebe verilecek yanıt şu şekilde olacaktır:

    ("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", "takipçilerin_url'si": "https://api.github.com/users/Freika/followers", "takip eden_url": "https://api.github.com/users/Freika/following(/other_user)", "gists_url": "https://api.github.com/users/Freika/Gists(/Gist_id)", "yıldızlı_url": "https://api.github.com/users/Freika/starred(/owner)(/repo)", "abonelik_url'si": "https://api.github.com/users/Freika/subscriptions", "kuruluş_url'si": "https://api.github.com/users/Freika/orgs", "repos_url": "https://api.github.com/users/Freika/repos", "olay_url'si": "https://api.github.com/users/Freika/events(/privacy)", "alınan_olayların_url'si": "https://api.github.com/users/Freika/received_events", "type" : "Kullanıcı" , "site_admin" : false , "name" : "Evgeniy" , "company" : "" , "blog" : "http://frey.su/" , "location" : " Barnaul" , "email" : "" , "kireable" : true , "bio" : null, "public_repos" : 39, "public_gists" : 13, "followers" : 15, "following" : 21, "created_at": "2013-03-01T13:48:52Z" , "güncellendi_at" : "2014-12-15T13:55:03Z")

    Yukarıdaki bloktan görebileceğiniz gibi yanıt, bir oturum açma bilgilerini, bir avatarı, sitedeki ve API'deki profile bir bağlantıyı, kullanıcı durumunu, genel depoların sayısını ve diğer yararlı ve ilginç bilgileri içerir.

    Bir API yeterli değil

    Uygulamanız için tam teşekküllü bir API oluşturmak savaşın yalnızca yarısıdır. API'ye nasıl erişeceksiniz? Kullanıcılarınız buna nasıl erişecek?

    Akla gelen ilk şey, istenen bilgiyi elde etmek için olağan HTTP istekleri dizisidir ve bu yanlış cevaptır. Bu durumda en bariz yol, en uygun ve basit olanı değildir. Arayüzle çalışmak için, API'yi kullanarak bilgi almanın ve göndermenin gerekli tüm yollarını açıklayacak özel bir kitaplık oluşturmak çok daha mantıklı olacaktır.

    Örnek vermek için bir kez daha Github'ı kullanalım: Bu mükemmel hizmetin API'si ile çalışmak için (ve arayüzü geniş olanaklar sağlar), çeşitli dillerde birkaç kütüphane oluşturulmuştur, örneğin gem . Bu tür kitaplıkların belgelerinde (ve örnek olarak verilen mücevherde), ilgilenen herhangi bir geliştirici, Github'dan bilgi almanın ve onu hizmet API'si aracılığıyla geri göndermenin tüm gerekli yollarını bulabilecektir.

    Bu nedenle, kendi API'nizi oluşturuyorsanız, onunla en yaygın dillerde çalışmak için kütüphaneler oluşturmayı da düşünün. Uygulamanıza belirli bir düzeyde talep gelmesi durumunda başka birisinin API'nizle çalışmak üzere kendi kitaplığını oluşturabileceğine hazırlıklı olun. Bu iyi.

    kullanışlı bağlantılar

    Sonraki yazılarımızda API'nin doğru şekilde nasıl oluşturulacağı, güvenliğinin nasıl sağlanacağı ve bazı bilgilere erişimin nasıl kısıtlanacağı hakkında konuşacağız.

    Hey Habr!

    Bir zamanlar Vkontakte API'sinin rasyonel kullanımı için internette gezinirken anlaşılır bir şey bulamadım, bulduğum tek kütüphaneler genel kabul görmüş uygulamalar kullanılmadan ve güzel kodlar olmadan uygulandı. Yanlış anlaşılmayı düzeltmeye karar verdim ve Vkontakte API ile çalışacak kendi kütüphanemi yazdım.
    Habrakat kapsamında yakıcı detaylar ve yaklaşımlar.

    Daha sonra bahsedeceğim bazı mantıksız noktalar dışında, VK API'nin oldukça iyi uygulandığı ortaya çıktı. Ancak bugün kaliteyle ilgili değil, spesifik uygulamayla ilgili konuşma yapılıyor.

    Hemen rezervasyon yaptırmanız gerekiyor, açıklamaya ek olarak, makalenin sonunda linkini vereceğim kitaplığım için çalışma kodu parçaları vereceğim. Kütüphane en son kararlı sürüm 5.5'te çalışır, toplu alımdan jeneratörleri çıkarırsanız 5.4'te çalışmalıdır.

    • Sunucu yetkilendirmesi (sitelerin sözde yetkilendirilmesi)
    • İstemci Yetkilendirmesi (Bağımsız)
    • Uygulama sunucusu yetkilendirmesi
    Geliştirici için en ilginç olanı ilk ikisidir. Birincisi sitede bir kullanıcıya yetki vermenizi ve erişim anahtarını almanızı sağlar, ikincisi ise Dekstop veya Mobile gibi uygulamanızı yetkilendirmenizi sağlar. İleriye baktığımızda, ikinci seçenek bize çok büyük fırsatlar sunuyor, birincisi ise bunların yalnızca küçük bir kısmını.

    İlk durumda elde etme algoritması aşağıdaki noktalara indirgenmiştir:

    • Kullanıcı yetkilendirmesi için belgelere uygun olarak biçimlendirdiğimiz bir bağlantı görüntülüyoruz
    • Kullanıcı bunu gözden geçirir ve oturum açar
    • Kullanıcı GET parametre kodu ile uygulamamızın REDIRECT_URI adresine yönlendirilir.
    • Uygulamamızın kullanıcının erişim anahtarını alabilmesi için kod içeren bir API isteği yapması gerekiyor.
    • API, erişim anahtarını içeren bir nesneyle veya bir hatayla yanıt verir.

    Bunu yapabileceğiniz bir kod örneği zor bir şey değildir.

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

    Alan adımızın localhost olduğu ve mevcut dosyanın test.php olduğu varsayılmaktadır. Her şey yolunda giderse $token değişkenimiz yetkilendirilmiş kullanıcının erişim anahtarını içerecektir.

    Bir erişim anahtarına sahip olduğumuz andan itibaren şunları gerçekleştirebiliriz: API istekleri. Genel istek mantığı basittir; özel hazırlanmış bir isteği API URL'sine iletirsiniz. İstek, yöntem adını ve bağımsız değişkenleri içermelidir.

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

    Yöntem listesi, bu API'nin zengin yanlarından biridir. İçinde işleri için erişim anahtarı gerektirmeyen yöntemleri karşılayabilir, bu nedenle bunları almadan arayabilirsiniz.

    Kütüphaneyi kullanırken şöyle bir temel nesne oluşturmamız gerekiyor:
    $vk = getjump\Vk\Core::getInstance()->apiVersion("5.5")->setToken($token);

    Kütüphaneyi kullanan birkaç sorgu örneği:

    Her birinde, 1'den 100'e kadar kullanıcılar hakkında veri içeren tam 100 nesne anonim işlevden geçecektir. İşlev çağrısını kaldırırsak hiçbir isteğin oluşmayacağını unutmayın, bunun nedeni __call ve __get büyüsüne sahip bir nesnenin döndürülmesidir. geçersiz kılınan yöntemler, bu da gerçekten ihtiyacımız olduğunda istekte bulunmamıza olanak tanır.
    $vk->request("users.get", ["user_ids" => range(1, 100)])->each(function($i, $v) ( if($v->last_name == "" ) dönüş; print $v->last_name . "
    "; });

    Jeneratörlerin kullanımını bize açan şeylerden biri toplu çizimdir. Yani verileri yalnızca ihtiyacımız olduğunda alırız. Aşağıdaki örnek, 100 istekte TÜM mesajlarımızı almamıza olanak sağlayacaktır. Dikkatli olun, yöntem mesajlara, Bağımsız uygulamalara, aynı yetkiye ve buna bağlı olarak bir erişim anahtarının aktarımına ilişkin haklara sahip olmanızı gerektirir.
    foreach($vk->request("messages.get")->batch(100) as $data) ( $data->each(function($i, $m) ( if(isset($m->body) ) print $m->body .PHP_EOL; )); )

    iyi yöntem API'de bulunabilir - uygulamak. Argüman olarak bir kod parametresi alır, kod, kodumuzu sunucu tarafında çalıştırmamıza olanak tanıyan bir tür sözde JavaScript'tir ve aynı zamanda uygulamamızı düzenlerken oluşturabileceğimiz saklı yordamları yürütmemize olanak tanır.

    Bu durumu göz ardı edemedim ve kütüphanede uyguladım. Özetle, birden fazla sorguyu tek bir sorgu olarak çalıştırmanıza olanak tanır. Aşağıdaki kod örneğine bakın.

    $js1 = $vk->request("messages.get", ["count" => 200, "offset" =>0 * 200])->toJs(); // Bir VkJs nesnesini döndürür $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'yi js1'e ekliyoruz ->append($js3) ->append($js4) ->execute() // Bunu yürütmek istiyoruz (aslında bir requestTransaction döndürecektir) - >yanıt //İstek ancak şimdi yürütülecek ->her(işlev($i, $v) //İlk anonim işlev, yürütmeden alınan dizinin tüm öğelerini geçmek için gereklidir(4 öğeli dizi, 4) request) ( $v->each( function($c, $d) ( // Her dizideki 200 mesajın tümü boyunca döngü yapmak için sonraki if(isset($d->body)) print $d->body; // Böyle bir alan mevcutsa mesajı yazdır )); ) );

    Söz verdiğimiz gibi, karşılaşabileceğiniz yanlış anlamalardan biri şimdiki versiyonu API(5.21), yöntem