
はじめに
少し前までは、コミュニティアルバムからすべての画像をダウンロードし、インターネットで適切なサービスを検索したいという要望がありましたが、有料サービスのみに遭遇しました。
そして彼の誕生日の前夜には、サービスを書く時間と素晴らしい気分がありました。
開発のために、Pythonを使用し、Djangoの既存のプロジェクト用のアプリケーションを作成することにしました。 行きましょう。
VKontakteアプリケーションを作成
し 、サービスがホストされるサイトを示します。 そして、アプリケーションデータを取得し、それをアプリケーションに書き込みます。
VKontakteアプリケーションのソースデータ。
client_id = '5366344' client_secret = 'g8uyxFMdQcnL9Hak5hup' redirect_uri = 'https://devel0per.space/projects/vk_album/authorize'
ユーザーがアルバムへのリンクを入力するためのメインフォームを作成します。
class Form_Album(forms.Form): url_album = forms.CharField(widget=forms.Textarea(attrs={'class': 'form-control materail_input', 'rows': '1', 'style': 'resize:none'}))
ユーザーを承認します
。photos.getメソッドを使用するため、受け取ったトークンは必要ありません。 承認後、ユーザーをフォームにリダイレクトするだけです。
def Authorize(request): if request.method == 'GET': code = request.GET.get('code') responce = (requests.get('https://oauth.vk.com/access_token?client_id='+client_id+'&client_secret='+client_secret+'&redirect_uri='+redirect_uri+'&code='+code)).json() token = responce['access_token'] return HttpResponseRedirect ('/projects/vk_album/')
フォームハンドラーを追加します。
最後に、リンクを取得してダウンロードします。 また、アーカイブの作成。
def Download_Url(photos_get,url_album):
プロジェクトにURLを追加します。
url(r'^projects/vk_album/$', Url_Manager, name='Form'), url(r'^projects/vk_album/download/$', Url_Manager, name='Form'), url(r'^projects/vk_album/authorize/$', Authorize, name='Authorize'),
そして今、すべての準備ができたら、フォームでhtmlページを作成します。
<p class="bg-danger text-center">{{ error }}</p> {{ form }}
おわりに
その結果、Vkontakteアルバムから画像をダウンロードするための独自のサービスが提供され、その機能を補完できます。 たとえば、統計の収集など。
Githubデモ