2017年06月 / 05月≪ 123456789101112131415161718192021222324252627282930≫07月

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--:--  |  スポンサー広告  |  EDIT  |  Top↑

2010.09.30 (Thu)

[Python] python-twitter の OAuth 認証対応 [Twitter]

Twitter の Basic 認証が8月から無理になるということでしたが、なんだかんだで9月28日くらいまでは動いていました。
しかし、いくつか Bot を作ってはいたものの、全部 Basic 認証だったのでついに動作停止しました。
なので、OAuth 認証に対応させようと頑張ってます。

今まで python-twitter でやっていたので、このままこのライブラリを使おうとしてみたものの、いろいろと問題が発生。
結論から言うと、ツイートしようとするとエラーが発生。
解決できないので、 python-twitter を利用するのは諦めました。
では、以下に四苦八苦した点を記載していきます。




1.python-twitter_0.6 は OAuth 不対応

9月30日現在、ダウンロード版の python-twitter はバージョン0.6が最新なのですが、これは OAuth に対応していません。
ドキュメントを見ると

    api = twitter.Api(id, pass, key, secret)

というような、いかにも「できますよ!!」と思わせる例が載っているのですが、実際にプログラムを書いてみるとエラー。
どうやらこの部分はまだ作られていない様子。
で、調べてみるとこのHPに突き当たる。

一部抜粋すると、

# python-twitterのDL版(Ver0.6)ではOAuthには対応していない。
# python-twitterの開発版(レポジトリのHEAD)ではOAuthに対応している。
# python-twitter(および依存ライブラリ)はPure Pythonなモジュール。

とのこと。
つまり、開発版を落とせとおっしゃられる。



2.python-twitter の開発中ソースからライブラリをインストール

この開発版は Mercurial というバージョン管理システムで公開されているため、それをインストールして

     $ hg clone https://python-twitter.googlecode.com/hg/ python-twitter
     $ cd python-twitter
     $ python setup.py build
     $ python setup.py install

とすればインストール完了。
さて、早速、以下のテストプログラムを動作させてみる。



3.サンプルプログラムの実行とエラー

正しく動けば、OAuth 認証され、アクセスするユーザのタイムラインと特定ユーザのフォロワーが表示される。
そして、Twitter に "test tweet." というつぶやきを行うはず。




# -*- coding: utf-8 -*-
import twitter # twitterAPI

account_name = 'あかうんとめい'
account_pass = 'あかうんとぱす'
access_oauth_token = 'アクセストークン'
access_oauth_token_secret = 'アクセストークンシークレット'

def main():
    api = twitter.Api(account_name, account_pass, access_oauth_token, access_oauth_token_secret)
    tweets = api.GetUserTimeline('処理対象のアカウント')
    print api.GetFollowers()
    bot.PostUpdate('test tweet.')

if __name__ == "__main__":
    main()





動作させてみると、PostUpdate() のところで次のようなエラーが出る。

twitter.TwitterError: Incorrect signature


どうも、うまく認証できていない・・・?
何が原因かはソースをたどってもググってもよくわからず、諦めました。
かわりに、Tweepy というライブラリで bot を作り直すことにします。
これのエラー原因を教えてくれる方随時募集です。


テーマ : プログラミング ジャンル : コンピュータ

19:52  |  Python  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

*Comment

コメントを投稿する

URL
COMMENT
PASS  編集・削除するのに必要
SECRET  管理者だけにコメントを表示  (非公開コメント投稿可能)
 

▲PageTop

*Trackback

この記事のトラックバックURL

→http://gasser.blog114.fc2.com/tb.php/455-38aecc89

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲PageTop

 | BLOGTOP | 

 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。