Skip to content

otsuka/strippers.mixi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

strippers.mixi

概要

mixi Graph API を Python から簡単に使えるようにするためのライブラリです。

インストール方法

easy_install を使ってインストールします。 依存ライブラリの MultipartPostHandler も自動的にインストールされます。

# easy_install strippers.mixi

サポートしているAPI

現在このライブラリがサポートしている mixi Graph API は以下の通りです。

READ_PROFILE (r_profile) スコープ

  • 友人一覧の取得
    • get_friends(group_id='@friends', sort_by=None, sort_order='ascending', count=20, start_index=0)
  • 自分自身の取得
    • get_myself()

READ_VOICE (r_voice) スコープ

WRITE_VOICE (w_voice) スコープ

READ_MESSAGE (r_message) スコープ

WRITE_MESSAGE (w_message) スコープ

WRITE_SHARE (w_share) スコープ

  • mixiチェックの投稿
    • share(key, title, url, image=None, pc_url=None, smartphone_url=None, mobile_url=None, description=None, comment=None, visibility=V_FRIENDS)

WRITE_DIARY (w_diary) スコープ

strippers.mixi モジュールの定数

スコープ

  • READ_PROFILE
    • 'r_profile'
  • READ_VOICE
    • 'r_voice'
  • WRITE_VOICE
    • 'w_voice'
  • READ_UPDATE
    • 'r_updates'
  • WRITE_SHARE
    • 'w_share'
  • READ_PHOTO
    • 'r_photo'
  • WRITE_PHOTO
    • 'w_photo'
  • READ_MESSAGE
    • 'r_message'
  • WRITE_MESSAGE
    • 'w_message'
  • WRITE_DIARY
    • 'w_diary'

公開設定

APIメソッドのprivacy、またはvisibility引数に渡す値。APIによってサポートされている公開設定の範囲は異なります。

  • V_EVERYONE
    • 'everyone' : 全体に公開
  • V_FRIENDS
    • 'friends' : 友人まで公開
  • V_FRIENDS_OF_FRIENDS
    • 'friends_of_friends' : 友人の友人まで公開
  • V_TOP_FRIENDS
    • 'top_friends' : 仲良しに公開
  • V_SELF
    • 'self' : 非公開

特定のグループにのみへの公開('group')は、このライブラリでは今のところサポートされていません。

使用方法

MixiGraphAPI オブジェクトの初期化

>>> from strippers.mixi import MixiGraphAPI, WRITE_VOICE, DEVICE_PC
>>>
>>> # mixi サービス登録情報を定義
>>> consumer_key = 'xxxxxxxxxxxxxxxxxxxx'
>>> consumer_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
>>> redirect_uri = 'http://www.example.com/mixi/authorized'
>>>
>>> # 使用する API のスコープを指定
>>> scopes = [WRITE_VOICE]
>>>
>>> # (1) MixiGraphAPI オブジェクトを生成
>>> api = MixiGraphAPI(consumer_key, consumer_secret, scopes)
>>>
>>> # (2) ユーザ認可用 URL を取得
>>> api.get_auth_url(device=DEVICE_PC)
'https://mixi.jp/connect_authorize.pl?scope=w_voice&response_type=code&client_id=xxxxxxxxxxxxxxxxxxxx&display=pc'

>>> # (3) 上の URL にアクセスして[同意する]と、サービス登録した redirect_uri に
>>> # code パラメータ付きでリダイレクトされてきます。
>>> # この code パラメータを利用します。
>>> code = '5fbf8d9e55f0df0deff68cd4a8500701b3fe6baa'
>>>
>>> # (4) MixiGraphAPI オブジェクトを初期化
>>> api.initialize(code, redirect_uri)
>>>
>>> # 認可ユーザのアクセストークンとリフレッシュトークンを取得
>>> access_token, refresh_token = api.tokens

MixiGraphAPI オブジェクトを初期化すると、各 API メソッドを実行できるようになります。

ユーザのアクセストークンとリフレッシュトークンが予め分かっている場合は、上記(1)~(4)の MixiGraphAPI オブジェクトの初期化処理は要らず、次のようにアクセストークンとリフレッシュトークンを引数に渡して MixiGraphAPI オブジェクトを生成するだけで済みます。

>>> api = MixiGraphAPI(consumer_key, consumer_secret, scopes, access_token, refresh_token)

つぶやきの投稿

>>> status = api.update_status('投稿なう')
>>>
>>> # 上のつぶやきを削除します
>>> api.delete_status(status['id'])

フォト付きでつぶやきを投稿するには、画像ファイルのファイルパス、または「http(s)://」で始まる URL を第2引数に渡します。

>>> api.update_status('フォト投稿なう', '/path/to/picture.jpg')
>>>
>>> # フォトだけの投稿も可能
>>> api.update_status(photo='/path/to/picture.jpg')

トークンの有効期限切れ

アクセストークン、リフレッシュトークンそれぞれに有効期限があります。アクセストークンの有効期限は約15分ですが、リフレッシュトークンが有効期限内は MixiGraphAPI オブジェクト内部で自動的に再取得(リフレッシュ)します。

リフレッシュトークンの有効期限は約6時間(ユーザ認可時に「常に同意する」のチェックを入れていれば約3ヶ月間)です。リフレッシュトークンが期限切れになった場合は、MixiGraphAPI オブジェクトの初期化処理が必要になります。つまり、再度ユーザ認可を行います。

>>> from strippers.mixi import ExpiredTokenError
>>>
>>> try:
>>>     api.update_status('リフレッシュトークン期限切れの場合')
>>> except ExpiredTokenError:
>>>     auth_url = api.get_auth_url(device=DEVICE_PC)
>>>     # auth_url にアクセスしてユーザ認可処理...

About

Python library for mixi Graph API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages