- ログイン/パスワードまたはCookieを使用したOAuth 2.0に基づく認可。
- アプリケーションが必要とするアクセス権を設定します。
- VK APIリクエストを作成し、JSON、XML、またはPerlオブジェクト形式で結果を取得します。
クライアントアプリケーションを作成するには、 api_idを知る必要があります。 これを行うには、アプリケーションを登録するか、既存のapi_idを使用します。
構文
コンストラクター
#1. use VK::App; my $vk = VK::App->new( # email login => 'login', # password => 'password', # api_id api_id => 'api_id', # cookies #( ) cookie_file => '/home/user/.vk.com.cookie', ); #2. cookies use VK::App; my $vk = VK::App->new( cookie_file => '/home/user/.vk.com.cookie', api_id => 'api_id', ); #3. use VK::App; my $vk = VK::App->new( cookie_file => '/home/user/.vk.com.cookie', api_id => 'api_id', # , . # : # http://vk.com/developers.php?oid=-17680044&p=Application_Access_Rights scope => 'friends,photos,audio,video,wall,groups,messages,offline', # : # 'JSON', 'XML' 'Perl' . : 'Perl'. format => 'Perl', );
リクエスト例
# : # my $response = $vk->request($METHOD_NAME,$PARAMETERS); # : # http://vk.com/developers.php?oid=-17680044&p=API_Method_Description #1. uid my $user = $vk->request('getProfiles',{uid=>'genaev',fields=>'uid'}); my $uid = $user->{response}->[0]->{uid}; #2. uid my $tracks = $vk->request('audio.get',{uid=>$uid}); my $url = $tracks->{response}->[0]->{url}; # mp3
モジュールはcpanで公開されています。 すべてのメソッドの詳細なドキュメントと説明: https : //metacpan.org/module/VK :: App
なぜ別の自転車が必要なのですか?
他の自転車には四角い車輪があるからです! 私たちの音楽の好みに合ったお気に入りの音楽グループや友人がvk.comにいくつかあります。 たとえば、車の中で聴くために、これらのグループや友人の音楽の実際のローカルコピーを手に入れたかったのです。 つまり 自動的に同期できます。 原則として、GUIを備えたアプリケーションは検討しませんでした。 適切なコンソールの中で見つかりませんでした。 他のプログラミング言語(私はRuby、Python、Java、Cの経験があります)のAPI実装を探すこともできますが、魂はまさにPerlにあります。 cpan.orgには、2つのVK :: MP3およびVKontakte :: APIモジュールがあります。 VK :: MP3は通常のモジュールですが、問題を解決できません。なぜなら、 音楽のみを検索します。 VKontakte :: APIは完全に機能していません。 まず、何らかの理由で、秘密のアプリケーションキーが必要です。これは安全ではありません。 次に、getUserSettingsリクエストで+1コードを返します。これは、 アクセス権が実際にないことを意味します 。 第三に、コンストラクターの3番目のバージョンを使用すると、モジュールが単純にクラッシュします。 これらの理由から、ここで問題のモジュールを書くというアイデアが生まれました。
計画
すべてが開始された私のvmdプログラム(vkontakte音楽ダウンローダー)を思い出してください。 githubで共有します。誰かに役立つでしょうか? Windows、Mac、Linux用の静的バイナリをプログラムからコンパイルできます(PDKの購入済みバージョンがあります)。
VK :: Appは、CPANで公開された私の最初のモジュールです。 また、公開プロセスには、モジュール自体を記述するのに2〜3倍の時間がかかりました。 ネットワークには多くの情報があるようですが、アクションの明確なシーケンスはわかりません。 はい、そして落とし穴があります。 私はこの問題をかなり詳細に研究し、モジュール配布キットを公開するために正しくかつ迅速に組み立てる方法についての説明を自分で書きました。 私はそれを少しとかし、habrahabrの別の記事としてそれを置くことができます。
私はどんなフィットバックにも喜んでいます!
UPD
計画に関して:
vkontakte音楽ダウンローダーに関する投稿-habrahabr.ru/post/146889
モジュールの公開に関する投稿-habrahabr.ru/post/146821
さらに、vk.comはログインとパスワードによって認証メカニズムを変更し、モジュールを変更する必要がありました。 VK :: App 0.06の現在のバージョンは動作していますが、以前のバージョンはすべて動作していません。 VK :: MP3モジュールも動作を停止したと思われます。