JavaScript: Ensimmäinen VKontakte-sovellus: Hei maailma, Ivanovich! Kirjoitamme yksinkertaista iframe-sovellusta yhteisten jäsenten ja ystävien katseluun, jossa on riittävästi toimintoja päästäksesi sovellushakemistoon.

Tänään puhumme ensimmäisen sovelluksesi luomisesta VKontakte-verkkosivustolle. No, historiallisena perinteenä tämä on "Hei maailma!"
Puhumme IFrame-sovelluksesta. Niille, jotka eivät tiedä, tämän tekniikan avulla voit luoda sovelluksen käyttämällä verkkosivustosi resursseja. Toisin sanoen sovellus on kehys, jossa on Internet-osoitteesi.

Anna verkkosivustomme sijaita osoitteessa: http://mysite.ru. Jotta emme roskaa pääsivuston hakemistoa, luomme kansion sivuston juureen ja kutsumme sitä "vk".

Luodaan uuteen kansioon tiedosto “index.php”, jossa on tyhjän HTML-dokumentin sisältö.

Hei maailma!

Lisätään kenttä, jossa näytetään sovelluksen avanneen henkilön etu- ja sukunimi.

Hei maailma!

Hei maailma,?! Mennään nyt suoraan asian ytimeen. Ensimmäinen asia, joka sinun on tehtävä, on yhdistää menetelmät työskennelläksesi yhteystietosovellusliittymän kanssa. Tätä varten lisätään HEAD -merkki:

seuraava rivi

Hei maailma! d = asiakirja; function F() ( VK.init(function() ( VK.api("getProfiilit", (uids: ), funktio(data)( if (data.error) alert(data.error.error_msg); muuten if (data)) .response) ( d.getElementById("who").innerHTML = data.response.last_name + " " + data.response.first_name; )));

Muutama kommentti yllä olevaan koodiin. Sovelluksen parametrit on hyväksytty

HAE pyyntö

, kaikki parametrit voidaan tarkastella VKontakten verkkosivustolla tai kutsumalla toimintoa alert(location.href); VK.init — Vaadittu toiminto, joka alustaa sovelluksen toiminnan edellyttämän globaalin VK-objektin. sovellukseen. Esimerkiksi kun seuraat linkkiä http://vkontakte.ru/app2270785, user_id-muuttuja on yhtä suuri kuin nolla, ja kun seuraat linkkiä http://vkontakte.ru/app2270785_3596080, tämä muuttuja on yhtä suuri kuin 3596080.

data - meidän tapauksessamme palautettu objekti API-toiminnot. Siinä voi olla virhe- tai vastauskenttä, ensimmäisessä tapauksessa tämä osoittaa, että pyyntöä ei voitu suorittaa, toisessa tapauksessa meillä on joukko funktion tuloksia. Meidän tapauksessamme pyysimme tietoja yhdeltä käyttäjältä, mikä tarkoittaa, että saimme yksielementtisen taulukon.

Tutustuaksesi menetelmiin ja palautusarvoihin, voit seurata tätä linkkiä: http://vkontakte.ru/developers.php#devstep2

6. maaliskuuta 2011 klo 14.13 IFrame-sovelluksen kehittäminen Contactissa Vkontakte API:n avulla
  • Verkkosivujen kehitys

Asennamme Joomlan - kaikki siellä on melko läpinäkyvää ja ymmärrettävää.

Vaihe 3: JS-sovellusliittymä ja "API kontaktissa"

Mitä meillä on arsenaalissamme: uusi sovellus Contactissa ja äskettäin luotu verkkosivusto joissakin vakiomalli Joomla.

Tässä haluan välittömästi kiinnittää huomionne Yhteystiedot-sovellusliittymään!

Sovellusliittymiä on 2 tyyppiä:

  • Javascript API
  • API Yhteystiedot
  • Käyttämällä ensimmäistä voit kutsua eri valintaikkuna(ystävien kutsuminen sovellukseen, äänien rekisteröinti, käyttäjätietojen käyttöoikeuden asettaminen jne. yksityiskohtainen kuvaus nämä menetelmät löytyvät.

    Toisen mahdollisuudet ovat paljon suuremmat! Skriptiä www.vkontakte.ru/api.php voi käyttää kuka tahansa kätevällä tavalla oli se sitten AJAX-pyyntö tai HTTP-pyyntö suoraan palvelimelta. Siellä on kuvaus kaikista API-menetelmistä.

    Nyt opitaan lisää API:n alustamisesta ja niiden kanssa työskentelystä. Aloitetaan järjestyksessä:

    JS-sovellusliittymä alustetaan lisäämällä seuraava JavaScript malliimme:

    Src=http://vkontakte.ru/js/api/xd_connection.js?2

    VK.init(funktio() (

    // Koodisi tässä
    });

    Haluan heti huomauttaa, että "API alustus onnistui" tämä rivi kirjoitettiin tähän syystä ja osoittaa, että VK.init-toiminto suoritetaan, kun se on valmis API työ! Mutta ei verkkoresurssiasi. Voit tarkistaa js-koodisi suoritusvalmiuden käyttämällä suosikki js-kirjastoasi tai -kehystäsi. Henkilökohtaisesti pidän enemmän Mootoolsista - sitä käytin.

    Alustuskoodini näyttää tältä:

    VK.init(funktio() (
    // API alustus onnistui
    window.addEvent("domready", function())(
    //DOM valmis
    })
    });

    Mitä voimme tehdä nyt? Ja nyt voimme käyttää API:ta, eli esimerkiksi tarkistaa, onko käyttäjä valinnut tarvittavat parametrit sovellukselle päästäkseen tietoihinsa. Esimerkiksi näin:

    VK.api("getUserSettings", function(data)(
    jos (data.response)(
    jos (!(256 & data.response))
    VK.callMethod("showSettingsBox", 263);
    }
    jos (data.error)(
    alert("Virhekoodi:"+data.error.error);
    }
    });

    Tätä varten kutsumme ensin getUserSettings-funktiota, joka palauttaa meille nykyisen käyttäjän asetusten bittimaskin. Kutsu suoritetaan VK.api-menetelmällä, jossa ensimmäinen parametri on funktion nimi ja toinen parametri Takaisinsoittotoiminto. Datamuuttuja on getUserSettings-funktion tulos, joka on tarkistettava virheiden varalta, jos data.error palautetaan, se tarkoittaa virhettä! Virhe voi johtua kahdesta (mielestäni) syystä: sivuston hallinto ei ole hyväksynyt sovellusta (ennen hyväksymistä vain getProfiles toimi minulle, muuten törmäsin myöhemmin foorumeilla viesteihin, että kaikki toimii testitilassa ). Jos funktio palautti data.response, jatkamme työskentelyä, tarkistamme nykyisten ja vaadittujen oikeuksien bitimaskit ja kutsumme JS API showSettingsBox -funktiota yhdellä parametrilla (tarvittavien oikeuksien maski, minulla on 263 - tämä on pääsy valokuviin, ystäviin ja linkki sovellukseen vasemmassa valikossa)

    Mielestäni "API in Contact" -menetelmien kutsuminen JS API:lla ei ole jotenkin hyvä. Tämä on kätevää yksinkertaisissa tehtävissä. Täysin JS:lle rakennettu Iframe-sovellus on erittäin työvoimavaltainen. Ja niin siirrytään opiskelemaan HTTP-pyynnöt API:lle.

    Vaihe 4: PHP ja "API kontaktissa"

    Tätä varten meillä on Joomla ja luokka, jonka otamme linkistä

    Jotta voit työskennellä API:n kanssa PHP:n kautta, sinun on luotava kaksi vakiota, joka sisältää tämän sovelluksesi api_id:n (se näkyy suoraan osoitepalkki kun seuraat linkkiä sovellukseen) ja salainen avain - se annetaan sovellusta luotaessa (se on pitkä ja sitä voidaan muuttaa sovelluksen asetuksista)

    API-kutsu PHP:n avulla näyttää tältä:

    Foreach ($this->items nimellä $item)(
    $uids = $tuote->tuote;
    }
    $api = uusi vkapi();
    $ans = $api->api("getProfiles", array("uids" => implode(",",$uids), "fields" => "valokuva, valokuva_iso"));

    Ensimmäinen foreach ottaa kaikki rekisteröidyt käyttäjät sovelluksestani (mutta enintään 1000), ja sitten pyydetään "API in Contact" lataamaan tietoja näistä käyttäjistä. Tulos on joukko arvoja, kuten: $ans["response"][$i]["field"], jossa vastaus on joukko tietoja käyttäjistä, sitten $i-elementti ja lopuksi vaadittu käyttäjän ominaisuuskenttä, esimerkiksi etunimi (nimi) tai valokuva.

    Tämän lähestymistavan edut:

    1. Turvalliset API-menetelmät tulevat saataville, mikä on tärkeää, jos haluat selvittää saldon tai lisätä/peruttaa ääniä.
    2. Sinun ei tarvitse kirjoittaa "tuhansia" rivejä JS-koodia toimiakseen API:n kanssa
    3. Saamme helposti hallittavan verkkosivuston ja sovelluksen samanaikaisesti.

    Kestää hyvin kauan kertoa mitä tarkalleen tein Joomlassa, eikä tarvetta ole, annan vain likimääräisen logiikan sovellukseni toiminnasta.

    Ei ole mikään salaisuus, että kaikki Joomla komponentit perustuvat MVC-kuvioon. Joka laittaa kaiken hyllyille!

    Komponentin ohjain hyväksyy kaikki käyttäjien komennot/pyynnöt (joko käyttäjän toimiin linkkien seuraamisen yhteydessä tai AJAX-pyynnöt käyttämällä JS:ää)

    Malli vastaa kaikista toiminnoista komponenttimme tietokannan kanssa, esimerkiksi: se näyttää itse äänestyksen, listat tietylle äänestäjälle äänestäneistä, reagoi varmistukseen ja uudelleenäänestykseen sekä useita muita aputoimintoja.

    Näkymä ohjaa eri asettelujen tulostusta ja tietojen siirtoa mallista niihin.

    Niille, jotka ovat kehittäneet komponentteja Joomlalle, kaikki on hyvin selvää.

    Kukaan ei estä meitä käyttämästä vkapi.class.php-luokkaa missään sovelluksessa, käytin sitä vain tietojen valmistelemiseen tulostusta varten (esim. käyttäjien käyttäjätunnus sovellukseni asentaneeseen yhteystietoon, lähetin kuvien osoitteet)

    Vaihe 5: Widgetit

    Kaikki ovat jo tottuneet valtava määrä erilaisia ​​muotoja ja painikkeet alkaen sosiaaliset verkostot. Halusin sellaisen myös Iframe-sovellukseeni. Kommentti-widgetin yhdistäminen:

    Älä missään tapauksessa lisää seuraavaa koodia sivullesi:

    Tämä sopii verkkosivustoille, mutta ei sovellu Iframe-sovelluksiin!

    Sinun tarvitsee vain tehdä tämä:

    VK.Widgets.Comments("vk_comments", (raja: 10, leveys: "578", liitä: "*"));

    JS-sovellusliittymä toteuttaa jo widgetien lisäämistoimintoja.

    Mitä tulee itse kommentteihin, tiedät, että kun käyttäjä jättää kommentin sovelluksen sivulle, se julkaistaan ​​myös hänen seinällään, mutta linkin kautta verkkosivustollesi, ei sovellukseen! Tämän välttämiseksi sinun on käytettävä pageURL-parametria, joka osoittaa sovelluksen osoitteen muodossa www.vkontakte.ru/app (app_id)

    Lopulta sain tämän:

    VK.Widgets.Comments("vk_comments", (raja: 10, leveys: "578", liitä: "*", sivun URL-osoite: "http://vkontakte.ru/app2176209"));

    Vaihe 6: Johtopäätös

    Tulos ei ole monimutkaista, mutta toimiva sovellus Yhteydenotossa. Sitä voidaan helposti laajentaa ja kehittää lisäämällä uusia ja uusia ominaisuuksia ja komponentteja suosikki-CMS:lläsi yhdessä VKontakte API:n ja JS API:n kanssa.

    Tässä on mitä sain.

    Asennamme Joomlan - kaikki siellä on melko läpinäkyvää ja ymmärrettävää.

    Vaihe 3: JS-sovellusliittymä ja "API kontaktissa"

    Mitä meillä on arsenaalissamme: tuore VKontakte-sovellus ja äskettäin luotu verkkosivusto jollain tavallisella Joomla-mallilla.

    Tässä haluan välittömästi kiinnittää huomionne Yhteystiedot-sovellusliittymään!

    Sovellusliittymiä on 2 tyyppiä:

  • Javascript API
  • API Yhteystiedot
  • Ensimmäistä käyttämällä voit avata erilaisia ​​valintaikkunoita (kutsua ystäviä sovellukseen, lisätä ääniä, asettaa pääsyn käyttäjätietoihin jne. Näistä menetelmistä löydät yksityiskohtaisen kuvauksen.

    Toisen mahdollisuudet ovat paljon suuremmat! Skriptiä www.vkontakte.ru/api.php voidaan käyttää millä tahansa kätevällä tavalla, olipa se sitten AJAX-pyyntö tai HTTP-pyyntö suoraan palvelimelta. Siellä on kuvaus kaikista API-menetelmistä.

    Nyt opitaan lisää API:n alustamisesta ja niiden kanssa työskentelystä. Aloitetaan järjestyksessä:

    JS-sovellusliittymä alustetaan lisäämällä seuraava JavaScript malliimme:

    Src=http://vkontakte.ru/js/api/xd_connection.js?2

    VK.init(funktio() (

    // Koodisi tässä
    });

    Haluan heti huomauttaa, että "API-alustus onnistui" tämä rivi kirjoitettiin tähän syystä ja tarkoittaa, että VK.init-toiminto suoritetaan, kun API on valmis toimimaan! Mutta ei verkkoresurssiasi. Voit tarkistaa js-koodisi suoritusvalmiuden käyttämällä suosikki js-kirjastoasi tai -kehystäsi. Henkilökohtaisesti pidän enemmän Mootoolsista - sitä käytin.

    Alustuskoodini näyttää tältä:

    VK.init(funktio() (
    // API alustus onnistui
    window.addEvent("domready", function())(
    //DOM valmis
    })
    });

    Mitä voimme tehdä nyt? Ja nyt voimme käyttää API:ta, eli esimerkiksi tarkistaa, onko käyttäjä valinnut tarvittavat parametrit sovellukselle päästäkseen tietoihinsa. Esimerkiksi näin:

    VK.api("getUserSettings", function(data)(
    jos (data.response)(
    jos (!(256 & data.response))
    VK.callMethod("showSettingsBox", 263);
    }
    jos (data.error)(
    alert("Virhekoodi:"+data.error.error);
    }
    });

    Tätä varten kutsumme ensin getUserSettings-funktiota, joka palauttaa meille nykyisen käyttäjän asetusten bittimaskin. Kutsu tehdään VK.api-menetelmällä, jossa ensimmäinen parametri on funktion nimi ja toinen on CallBack-funktio. Datamuuttuja on getUserSettings-funktion tulos, joka on tarkistettava virheiden varalta, jos data.error palautetaan, se tarkoittaa virhettä! Virhe voi johtua kahdesta (mielestäni) syystä: sivuston hallinto ei ole hyväksynyt sovellusta (ennen hyväksymistä vain getProfiles toimi minulle, muuten törmäsin myöhemmin foorumeilla viesteihin, että kaikki toimii testitilassa ). Jos funktio palautti data.response, jatkamme työskentelyä, tarkistamme nykyisten ja vaadittujen oikeuksien bitimaskit ja kutsumme JS API showSettingsBox -funktiota yhdellä parametrilla (tarvittavien oikeuksien maski, minulla on 263 - tämä on pääsy valokuviin, ystäviin ja linkki sovellukseen vasemmassa käyttäjävalikossa)

    Mielestäni "API in Contact" -menetelmien kutsuminen JS API:lla ei ole jotenkin hyvä. Tämä on kätevää yksinkertaisissa tehtävissä. Täysin JS:lle rakennettu Iframe-sovellus on erittäin työvoimavaltainen. Ja niin siirrymme API-pyyntöjen tutkimiseen.

    Vaihe 4: PHP ja "API kontaktissa"

    Tätä varten meillä on Joomla ja luokka, jonka otamme linkistä

    Jotta voit työskennellä API:n kanssa PHP:n kautta, sinun on luotava kaksi vakiota, joka sisältää sovelluksesi api_id:n (se näkyy suoraan osoitepalkissa, kun seuraat sovelluksen linkkiä) ja salaisen avaimen. annetaan sovellusta luotaessa (se on pitkä ja sitä voidaan muuttaa sovelluksen asetuksista)

    API:n kutsuminen PHP:llä näyttää tältä:

    Foreach ($this->items nimellä $item)(
    $uids = $tuote->tuote;
    }
    $api = uusi vkapi();
    $ans = $api->api("getProfiles", array("uids" => implode(",",$uids), "fields" => "valokuva, valokuva_iso"));

    Ensimmäinen foreach ottaa kaikki rekisteröidyt käyttäjät sovelluksestani (mutta enintään 1000), ja sitten pyydetään "API in Contact" lataamaan tietoja näistä käyttäjistä. Tulos on joukko arvoja, kuten: $ans["response"][$i]["field"], jossa vastaus on joukko tietoja käyttäjistä, sitten $i-elementti ja lopuksi vaadittu käyttäjän ominaisuuskenttä, esimerkiksi etunimi (nimi) tai valokuva.

    Tämän lähestymistavan edut:

    1. Turvalliset API-menetelmät tulevat saataville, mikä on tärkeää, jos haluat selvittää saldon tai lisätä/peruttaa ääniä.
    2. Sinun ei tarvitse kirjoittaa "tuhansia" rivejä JS-koodia toimiakseen API:n kanssa
    3. Saamme helposti hallittavan verkkosivuston ja sovelluksen samanaikaisesti.

    Kestää hyvin kauan kertoa mitä tarkalleen tein Joomlassa, eikä tarvetta ole, annan vain likimääräisen logiikan sovellukseni toiminnasta.

    Ei ole mikään salaisuus, että kaikki Joomlan komponentit perustuvat MVC-kuvioon. Joka laittaa kaiken hyllyille!

    Komponentin ohjain hyväksyy kaikki käyttäjien komennot/pyynnöt (myös käyttäjän toiminnot, kun seuraat linkkejä tai käytetään AJAX-pyyntöjä JS:n avulla)

    Malli vastaa kaikista toiminnoista komponenttimme tietokannan kanssa, esimerkiksi: se näyttää itse äänestyksen, listat tietylle äänestäjälle äänestäneistä, reagoi varmistukseen ja uudelleenäänestykseen sekä useita muita aputoimintoja.

    Näkymä ohjaa eri asettelujen tulostusta ja tietojen siirtoa mallista niihin.

    Niille, jotka ovat kehittäneet komponentteja Joomlalle, kaikki on hyvin selvää.

    Kukaan ei estä meitä käyttämästä vkapi.class.php-luokkaa missään sovelluksessa, käytin sitä vain tietojen valmistelemiseen (esimerkiksi käyttämällä sovellukseni asentaneen yhteystiedon käyttäjien uid-tunnusta; ladannut kuvien osoitteet)

    Vaihe 5: Widgetit

    Kaikki ovat jo tottuneet valtavaan määrään erilaisia ​​muotoja ja painikkeita sosiaalisista verkostoista. Halusin sellaisen myös Iframe-sovellukseeni. Kommentti-widgetin yhdistäminen:

    Älä missään tapauksessa lisää seuraavaa koodia sivullesi:

    Tämä sopii verkkosivustoille, mutta ei sovellu Iframe-sovelluksiin!

    Sinun tarvitsee vain tehdä tämä:

    VK.Widgets.Comments("vk_comments", (raja: 10, leveys: "578", liitä: "*"));

    JS-sovellusliittymä toteuttaa jo widgetien lisäämistoimintoja.

    Mitä tulee itse kommentteihin, tiedät, että kun käyttäjä jättää kommentin sovelluksen sivulle, se julkaistaan ​​myös hänen seinällään, mutta linkin kautta verkkosivustollesi, ei sovellukseen! Tämän välttämiseksi sinun on käytettävä pageURL-parametria, joka osoittaa sovelluksen osoitteen muodossa www.vkontakte.ru/app (app_id)

    Lopulta sain tämän:

    VK.Widgets.Comments("vk_comments", (raja: 10, leveys: "578", liitä: "*", sivun URL-osoite: "http://vkontakte.ru/app2176209"));

    Vaihe 6: Johtopäätös

    Tuloksena ei ole monimutkainen, mutta toimiva sovellus VKontaktessa. Sitä voidaan helposti laajentaa ja kehittää lisäämällä uusia ja uusia ominaisuuksia ja komponentteja suosikki-CMS:lläsi yhdessä VKontakte API:n ja JS API:n kanssa.

    Tässä on mitä sain.

    Hyvää iltapäivää. Tässä viestissä haluaisin analysoida palvelua yhteisten ystävien ja yhteisten ryhmän jäsenten katseluun vk.comissa. Haluan myös kertoa, mitä kohtasin sovellusluettelon moderoinnin aikana.

    Ja niin, jotta voit lisätä sovelluksesi vk.com-sivustoon, tarvitset sen ensin luoda.

    I. Projektin asettaminen ja vähän ensimmäisestä API-pyynnöstä

    Meidän jälkeen loi iframe-sovelluksen, meidän on määritettävä se. Siirrytään sovelluksen asetuksiin.

    Lähetän ensimmäisen pyynnön, jotta sovelluksen käynnistyessä VK.COM palauttaa minulle välittömästi GET-parametrin api_result avulla yksityiskohtaiset tiedot sovelluksen kirjoittaneesta käyttäjästä.

    Ensimmäinen API-pyyntö:

    method=users.get&user_ids=(viewer_id)&fields=photo_50&format=json&v=5.28


    II. Tärkeimmät kohdat JS:ssä

    Toteutusongelmia voi syntyä, kun VK API palauttaa enintään 1000 osallistujaa yhdessä pyynnössä. Jos teet yhden tällaisen pyynnön, osallistujaluettelon saaminen kestää hyvin kauan. Ratkaisin tämän ongelman käyttämällä edellisessä artikkelissani kuvattua koodia, jolla saat 25 000 osallistujaa kerrallaan.

    Haluaisin myös selittää, miksi en käyttänyt VK-käyttäjille valmista menetelmää friends.getMutual, palauttaa luettelon yhteisten ystävien tunnisteista käyttäjäparin välillä... Tosiasia on, että palvelu ei toimi vain käyttäjien, vaan myös ryhmien kanssa, joten olisi tarpeetonta tehdä kasaa käsittelyä esim. on yksi käyttäjä ja yksi ryhmä. Kyllä, se voidaan käsitellä, ja tämä jopa nopeuttaa työtä joissain tapauksissa.

    Kaikki API-pyyntötilastojen menetelmät toimivat ilman virheitä menetelmää lukuun ottamatta utils.resolveScreenName, tämä johtuu siitä, että käyttäjät syöttävät syöttökenttään vääriä linkkejä.

    III. Sovellusluetteloa valvotaan parhaillaan

    Lähettämällä valmis sovellus varmennusta varten moderaattori hylkäsi sen 2 päivää myöhemmin, koska sovellus ei toiminut HTTPS-protokollalla. Ratkaisin tämän ongelman lataamalla sovelluksen palvelimeltani github-palvelimelle, joka käyttää HTTPS-protokollaa.

    Pari päivää sitten eräs ystäväni pyysi minua auttamaan häntä luomaan online-kyselyn, koska VKontaktessa ei ollut tarpeeksi toimintoja (voit luoda siellä kyselyn vain 15 hengelle). Ongelma osoittautui mielenkiintoiseksi. Joten, ryhdytään töihin!

    Kenelle tämä viesti voi olla hyödyllinen:

    Asennamme Joomlan - kaikki siellä on melko läpinäkyvää ja ymmärrettävää.

    Vaihe 3: JS-sovellusliittymä ja "API kontaktissa"

    Mitä meillä on arsenaalissamme: tuore VKontakte-sovellus ja äskettäin luotu verkkosivusto jollain tavallisella Joomla-mallilla.

    Tässä haluan välittömästi kiinnittää huomionne Yhteystiedot-sovellusliittymään!

    Sovellusliittymiä on 2 tyyppiä:

  • Javascript API
  • API Yhteystiedot
  • Ensimmäistä käyttämällä voit avata erilaisia ​​valintaikkunoita (kutsua ystäviä sovellukseen, lisätä ääniä, asettaa pääsyn käyttäjätietoihin jne. Näistä menetelmistä löydät yksityiskohtaisen kuvauksen.

    Toisen mahdollisuudet ovat paljon suuremmat! Skriptiä www.vkontakte.ru/api.php voidaan käyttää millä tahansa kätevällä tavalla, olipa se sitten AJAX-pyyntö tai HTTP-pyyntö suoraan palvelimelta. Siellä on kuvaus kaikista API-menetelmistä.

    Nyt opitaan lisää API:n alustamisesta ja niiden kanssa työskentelystä. Aloitetaan järjestyksessä:

    JS-sovellusliittymä alustetaan lisäämällä seuraava JavaScript malliimme:

    src=http://vkontakte.ru/js/api/xd_connection.js?2

    VK.init(funktio() (

    // Koodisi tässä
    });

    Haluan heti huomauttaa, että "API-alustus onnistui" tämä rivi kirjoitettiin tähän syystä ja tarkoittaa, että VK.init-toiminto suoritetaan, kun API on valmis toimimaan! Mutta ei verkkoresurssiasi. Voit tarkistaa js-koodisi suoritusvalmiuden käyttämällä suosikki js-kirjastoasi tai -kehystäsi. Henkilökohtaisesti pidän enemmän Mootoolsista - sitä käytin.

    Alustuskoodini näyttää tältä:

    VK.init(funktio() (
    // API alustus onnistui
    window.addEvent("domready", function())(
    //DOM valmis
    })
    });

    Mitä voimme tehdä nyt? Ja nyt voimme käyttää API:ta, eli esimerkiksi tarkistaa, onko käyttäjä valinnut tarvittavat parametrit sovellukselle päästäkseen tietoihinsa. Esimerkiksi näin:

    VK.api("getUserSettings", function(data)(
    jos (data.response)(
    jos (!(256 & data.response))
    VK.callMethod("showSettingsBox", 263);
    }
    jos (data.error)(
    alert("Virhekoodi:"+data.error.error);
    }
    });

    Tätä varten kutsumme ensin getUserSettings-funktiota, joka palauttaa meille nykyisen käyttäjän asetusten bittimaskin. Kutsu tehdään VK.api-menetelmällä, jossa ensimmäinen parametri on funktion nimi ja toinen on CallBack-funktio. Datamuuttuja on getUserSettings-funktion tulos, joka on tarkistettava virheiden varalta, jos data.error palautetaan, se tarkoittaa virhettä! Virhe voi johtua kahdesta (mielestäni) syystä: sivuston hallinto ei ole hyväksynyt sovellusta (ennen hyväksymistä vain getProfiles toimi minulle, muuten törmäsin myöhemmin foorumeilla viesteihin, että kaikki toimii testitilassa ). Jos funktio palautti data.response, jatkamme työskentelyä, tarkistamme nykyisten ja vaadittujen oikeuksien bitimaskit ja kutsumme JS API showSettingsBox -funktiota yhdellä parametrilla (tarvittavien oikeuksien maski, minulla on 263 - tämä on pääsy valokuviin, ystäviin ja linkki sovellukseen vasemmassa käyttäjävalikossa)

    Mielestäni "API in Contact" -menetelmien kutsuminen JS API:lla ei ole jotenkin hyvä. Tämä on kätevää yksinkertaisissa tehtävissä. Täysin JS:lle rakennettu Iframe-sovellus on erittäin työvoimavaltainen. Ja niin siirrymme API-pyyntöjen tutkimiseen.

    Vaihe 4: PHP ja "API kontaktissa"

    Tätä varten meillä on Joomla ja luokka, jonka otamme linkistä

    jotta voit työskennellä API:n kanssa PHP:n kautta, sinun on luotava kaksi vakiota, joka sisältää sovelluksesi api_id:n (se näkyy suoraan osoitepalkissa, kun seuraat sovelluksen linkkiä) ja salaisen avaimen - se; annetaan sovellusta luotaessa (se on pitkä ja sitä voidaan muuttaa sovelluksen asetuksista)

    API-kutsu PHP:llä näyttää tältä:

    foreach ($this->items kuin $item)(
    $uids = $tuote->tuote;
    }
    $api = uusi vkapi();
    $ans = $api->api("getProfiles", array("uids" => implode(",",$uids), "fields" => "valokuva, valokuva_iso"));

    Ensimmäinen foreach ottaa kaikki rekisteröidyt käyttäjät sovelluksestani (mutta enintään 1000), ja sitten pyydetään "API in Contact" lataamaan tietoja näistä käyttäjistä. Tulos on joukko arvoja, kuten: $ans["response"][$i]["field"], jossa vastaus on joukko tietoja käyttäjistä, sitten $i-elementti ja lopuksi vaadittu käyttäjän ominaisuuskenttä, esimerkiksi etunimi (nimi) tai valokuva.

    Tämän lähestymistavan edut:

    1. Turvalliset API-menetelmät tulevat saataville, mikä on tärkeää, jos haluat selvittää saldon tai lisätä/peruttaa ääniä.
    2. Sinun ei tarvitse kirjoittaa "tuhansia" rivejä JS-koodia toimiakseen API:n kanssa
    3. Saamme helposti hallittavan verkkosivuston ja sovelluksen samanaikaisesti.

    Kestää hyvin kauan kertoa mitä tarkalleen tein Joomlassa, eikä tarvetta ole, annan vain likimääräisen logiikan sovellukseni toiminnasta.

    Ei ole mikään salaisuus, että kaikki Joomlan komponentit perustuvat MVC-kuvioon. Joka laittaa kaiken hyllyille!

    Komponentin ohjain hyväksyy kaikki käyttäjien komennot/pyynnöt (myös käyttäjän toiminnot, kun seuraat linkkejä tai käytetään AJAX-pyyntöjä JS:n avulla)

    Malli vastaa kaikista toiminnoista komponenttimme tietokannan kanssa, esimerkiksi: se näyttää itse äänestyksen, listat tietylle äänestäjälle äänestäneistä, reagoi varmistukseen ja uudelleenäänestykseen sekä useita muita aputoimintoja.

    Näkymä ohjaa eri asettelujen tulostusta ja tietojen siirtoa mallista niihin.

    Niille, jotka ovat kehittäneet komponentteja Joomlalle, kaikki on hyvin selvää.

    Kukaan ei estä meitä käyttämästä vkapi.class.php-luokkaa missään sovelluksessa, käytin sitä vain tietojen valmistelemiseen (esimerkiksi käyttämällä sovellukseni asentaneen yhteystiedon käyttäjien uid-tunnusta; ladannut kuvien osoitteet)

    Vaihe 5: Widgetit

    Kaikki ovat jo tottuneet valtavaan määrään erilaisia ​​muotoja ja painikkeita sosiaalisista verkostoista. Halusin sellaisen myös Iframe-sovellukseeni. Kommentti-widgetin yhdistäminen:

    Älä missään tapauksessa lisää seuraavaa koodia sivullesi:

    Tämä sopii verkkosivustoille, mutta ei sovellu Iframe-sovelluksiin!

    Sinun tarvitsee vain tehdä tämä:

    VK.Widgets.Comments("vk_comments", (raja: 10, leveys: "578", liitä: "*"));

    JS-sovellusliittymässä on jo toimintoja widgetien lisäämiseen.

    Mitä tulee itse kommentteihin, tiedät, että kun käyttäjä jättää kommentin sovelluksen sivulle, se julkaistaan ​​myös hänen seinällään, mutta linkin kautta verkkosivustollesi, ei sovellukseen! Tämän välttämiseksi sinun on käytettävä pageURL-parametria, joka osoittaa sovelluksen osoitteen muodossa www.vkontakte.ru/app (app_id)

    Lopulta sain tämän:

    VK.Widgets.Comments("vk_comments", (raja: 10, leveys: "578", liitä: "*", sivun URL-osoite: "http://vkontakte.ru/app2176209"));

    Vaihe 6: Johtopäätös

    Tuloksena ei ole monimutkainen, mutta toimiva sovellus VKontaktessa. Sitä voidaan helposti laajentaa ja kehittää lisäämällä uusia ja uusia ominaisuuksia ja komponentteja suosikki-CMS:lläsi yhdessä VKontakte API:n ja JS API:n kanssa.

    Kiitos huomiosta, terveisin Danila.

    P.S. Hallinto hyväksyi hakemuksen päivää myöhemmin ja pyysi 10 ääntä talletukseksi.
    P.P.S Puolitoista tuntia tämän jälkeen saatiin jo useita ostotarjouksia! Sanon heti, että se ei ole myynnissä, en näe järkeä, varsinkaan nyt!