やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

GitHubAPIでAccessTokenを新規生成する

GitHubAPIでAccessTokenを新規生成し、SQLiteのDBに挿入する。

成果物

GitHubGiHubApi.Authorizations.Create

使い方はGitHubを参照。

開発環境

今回はじめて知ったこと

note重複エラー

note(description)の値が既存のものと重複すると、以下のようなエラーが返ってくる。

{"message":"Validation Failed","errors":[{"resource":"OauthAccess","code":"already_exists","field":"description"}],"documentation_url":"https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization"}

こちらも参照した。感謝。

json上ではapp.name, note, のようなキー名だが、サイト上ではdescriptionと表現されているからわかりにくい。

AccessTokenのnote値はそのアカウント内で重複しないものにする必要があるらしい。

配列→カンマ区切文字列

配列をカンマ区切の文字列に変換する方法。 こちらを参考にさせていただいた。感謝。

scopes = ['repo','delete_repo','gist']
scopes_str = map(str, scopes)
print ",".join(scopes_str)

mapは第一引数の関数を、第二引数のリスト要素全部に対して処理する関数らしい。str関数は文字列に変換する関数。scopeの名前を期待しているから文字列のはずなので不要かもしれない。しかし、内部で文字列チェックをするため、一応文字列化しておく。最後に全配列をカンマ区切りで結合する。

課題

  • scopesの親子関係チェックをしていない

所感

これでAPIからToken操作や、その他のAPIを自動実行する最低限の基礎ができた。