2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DropboxAPIのAccessToken&RefreshToken備忘録

Last updated at Posted at 2022-04-30

結論

DropboxAPIのAccessTokenは一定期間でリセットされアクセス出来なくなる。
毎回AccessTokenを発行しなおすのは面倒なので、RefreshTokenを発行し接続することで回避する。

AccessTokenの発行方法(一応)

ここにアクセスし、アプリを作成 or 右上のAppConsoleから選択

permissonから必要な権限を有効化し、ダッシュボードのsetting/Oauth2/GenerateAccessTokenで発行する。

AccessTokenでの利用方法

import dropbox

dbx = dropbox.Dropbox(`<ACCESS TOKEN>')

RefreshTokenの発行方法

まずはauthorization_codeを取得する。(後で<AUTHORIZATION_CODE>に入力する)

ダッシュボードのsettingにあるApp keyApp secretを控える。

以下のURLの''を自分のAppkeyに変更しアクセスする。
https://www.dropbox.com/oauth2/authorize?client_id='<Appkey>'&token_access_type=offline&response_type=code

認証画面みたいなものが出るので進み、最後の画面にあるauthorization_codeを控える。

次にPostmanを利用してRefreshTokenを取得する。
以下を用いてPOSTする。

key value
code '/AUTHORIZATION_CODE/'
grant_type authorization_code

成功すると以下のようなJson形式の返答がある。これのrefresh_tokenがそれ。

{
    "access_token": "sl.****************",
    "token_type": "bearer",
    "expires_in": 14400,
    "refresh_token": "*********************",
    "scope": <SCOPES>,
    "uid": "**********",
    "account_id": "***********************"
}

RefreshTokenでの利用方法

import dropbox

dbx = dropbox.Dropbox(app_key='<Appkey>', app_secret='<Appsecret>',
                          oauth2_refresh_token='<Refreshtoken>')

おまけ:ファイルのやり取り

# Dropboxからlocalに
with open('<Local上でのPATH>', "wb") as f:
    metadata, res = dbx.files_download(path=’<Dropbox上でのPATH>’)
    f.write(res.content)

# localからDropboxに(追記ではなく上書き)
dbx.files_upload(open('<Local上でのPATH>', "rb").read(), ’<Dropbox上でのPATH>’, mode=dropbox.files.WriteMode.overwrite)

参考文献

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?