[スポンサーリンク]
Bitlyの短縮URLサービス
先日、Bitly社の短縮URLサービスを、Bitlyのサイトから利用しました
今回はPythonで、WebAPIを利用して短縮URLを取得してみます
[スポンサーリンク]
Bitlyのアカウント登録
アカウント作成
BitlyのWebAPIを利用するには、アカウント登録が必要になります
アカウント登録は無料で行うことが出来ます
有料アカウントを作成すると出来ることが増えますが、今回は無料アカウントで進めます
まず、以下のBitly社のページを開きます
トップページのGet Started for Freeを押下して、無料アカウントを作成します
有料アカウントの広告が表示されますが、今回は使用しないので、その下にあるInterested in our free planを選択します
アカウントの登録情報の入力が求められます
・Username:使用するユーザ名
・Email address:使用するメールアドレス(後に認証で使用)
・Password:使用するパスワード
利用目的を確認されます
今回は個人利用なので、For personal useを選択します
他にも名前や使用目的について、アンケートが表示されます
回答しないことも出来ます
Skip this stepを押下し、スキップします
Biltyの管理画面が表示されます
これでアカウント作成は完了です
初回ログイン時は、画面上部に表示されている通り、メールアドレスの認証が求められます
メールアドレス認証
Bitlyにアカウントを作成すると、メールアドレスの認証が求められます
右上のメニューから、Profile Settingを押下し、Emailの設定を確認します
Emailのメニューでは、プライマリのメールアドレスが表示されています
Please verify your emailを押下して、メール認証を行います
すると下記のような、メールが登録したメールアドレスに届きます
VERIFY YOUR EMAILを押下し、Bitlyのサイトに飛びます
Emailの設定画面で、Your email address is verifiedと表示されれば認証完了です
[スポンサーリンク]
ユーザの管理画面から短縮URLを取得する方法
ユーザの管理画面からも短縮URLを生成することが出来ます
右上のCREATEメニューからLINKを押下します
(初めて生成する場合は、画面の左にある、CREATE YOUR FIRST LINKを押下でもOK)
PASTE LONG URLに短縮URLを生成したいURLを入力し、CREATEボタンを押下します
これで短縮URLの生成が完了です
[スポンサーリンク]
WebAPIから短縮URLを取得する方法
BitlyはWebAPIも提供しています
公式ドキュメントのサイトは以下です
BitlyのWebAPIは、ドキュメントの通り複数の認証方法をサポートしています
今回はアクセストークンを利用した方法を使用します
アクセストークンの発行
Bitlyのアクセストークンを発行します
右上のユーザメニューから、Profile Setting、Generic Access Tokenと順に押下します
アクセストークンの発行の為、パスワード認証を求められます
パスワードを入力し、GENERATE TOKENを押下すると、アクセストークンが発行されます
サンプルコード
・guid取得
アクセストークンのみで認証する場合、アクセストークンを利用し、GUIDを発行します
1 2 3 4 5 6 |
BitlyGetShortenUrlHeaders = { 'Host' : BitlyGetShortenUrlApiHost ,'Authorization' : BitlyGetShortenUrlApiAccessToken ,'Content-Type' : 'application/json' } BitlyGetGuidResPonse = requests.get(BitlyGetGroupsUrl, headers = BitlyGetShortenUrlHeaders) |
・短縮URL取得
発行したGUIDと短縮URLを生成するURLをヘッダーに入れ、getを使ってリクエストします
1 2 3 4 5 |
BitlyGetShortenUrlParameters = { 'long_url' : BitlyTargetLongUrl ,'group_guid' : BitlyGetGuidResult['groups'][0]['guid'] } BitlyGetShortenUrlResponse = requests.post(BitlyGetShortenUrlApiUrl, headers = BitlyGetShortenUrlHeaders, json = BitlyGetShortenUrlParameters) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# coding: utf_8 # モジュールインポート import json import requests # パラメータ設定 BitlyGetShortenUrlApiHost = 'api-ssl.bitly.com' BitlyGetGroupsUrl = 'https://api-ssl.bitly.com/v4/groups' BitlyGetShortenUrlApiUrl = 'https://api-ssl.bitly.com/v4/shorten' BitlyGetShortenUrlApiAccessToken = 【AccessToken】 BitlyTargetLongUrl = 【対象URL】 # guid取得 BitlyGetShortenUrlHeaders = { 'Host' : BitlyGetShortenUrlApiHost ,'Authorization' : BitlyGetShortenUrlApiAccessToken ,'Content-Type' : 'application/json' } BitlyGetGuidResPonse = requests.get(BitlyGetGroupsUrl, headers = BitlyGetShortenUrlHeaders) BitlyGetGuidResult = json.loads(BitlyGetGuidResPonse.text) # 短縮URL取得 BitlyGetShortenUrlParameters = { 'long_url' : BitlyTargetLongUrl ,'group_guid' : BitlyGetGuidResult['groups'][0]['guid'] } BitlyGetShortenUrlResponse = requests.post(BitlyGetShortenUrlApiUrl, headers = BitlyGetShortenUrlHeaders, json = BitlyGetShortenUrlParameters) print(BitlyGetShortenUrlResponse) if BitlyGetShortenUrlResponse.status_code == 200 or BitlyGetShortenUrlResponse.status_code == 201: BitlyGetShortenUrlResult = json.loads(BitlyGetShortenUrlResponse.text) print(BitlyGetShortenUrlResult) |
サンプルレスポンス①
正常に短縮URLが生成された場合、HTTPの201レスポンスが返ってきます
BitlyGetShortenUrlResult[‘link’]に、生成された短縮URLが入っています
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<Response [201]> { 'created_at': '2020-05-01T05:34:09+0000' , 'id': 'bit.ly/3aSP9jN' , 'link': 'https://bit.ly/3aSP9jN' , 'custom_bitlinks': [] , 'long_url': 'https://computer.masas-record-storage-container.com/2020/04/21/python3twitterapi/' , 'archived': False , 'tags': [] , 'deeplinks': [] , 'references': { 'group': 'https://api-ssl.bitly.com/v4/groups/【GID】' } } |
サンプルレスポンス②
生成対象のURLの短縮URLが既に生成されていた場合、HTTPの200レスポンスが返ってきます
BitlyGetShortenUrlResult[‘link’]に、生成されている短縮URLが入っています
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<Response [200]> { 'created_at': '2020-05-01T05:34:09+0000' , 'id': 'bit.ly/3aSP9jN' , 'link': 'https://bit.ly/3aSP9jN' , 'custom_bitlinks': [] , 'long_url': 'https://computer.masas-record-storage-container.com/2020/04/21/python3twitterapi/' , 'archived': False , 'tags': [] , 'deeplinks': [] , 'references': { 'group': 'https://api-ssl.bitly.com/v4/groups/【GID】' } } |
[スポンサーリンク]
コメント