VK :: App-vk.comでクライアントアプリケーションを作成するためのモジュール

vk.comソーシャルネットワークでクライアントアプリケーションを作成するためのVK :: Appモジュールについて説明したいと思います。 モジュールの主な機能:

モジュールは最小限の依存関係を使用します:LWPとJSONのみ。



クライアントアプリケーションを作成するには、 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モジュールも動作を停止したと思われます。



All Articles