Pythonを使って、ユーザーを検索して、指定ユーザーをフォローしようと思ってプログラムを作ってたらTwitterAPIの操作でハマりました。
対象IDをフォローする場合に、IDやスクリーンネームをpostしないと駄目だと思うんですが、
今回対象のTwitterIDを指定URLにpostしたら403が返ってきたので情報の探し方が分からなくって凄い困りました。
解決のプロセス
URLにpostするパラメータの設定がおかしいんだと思ってたんですけど、メソッドからパラメータを送信するんじゃなくて、
POSTするURLにパラメータを設定する事で解決ができました。多分、ほかにも良いやり方がありそうです。
間違っていたコードと大丈夫だったコード
とりあえずパラメータをJSON形式で記載して、これをpostさせれば良いと思ってました。
実際statuses/updateの方ではパラメータをJSON形式で指定してpostさせたら上手く行きました。
twiKey = OAuth1Session(consumer, cSecret, accessToken, aSecret) url = "https://api.twitter.com/1.1/friendships/create.json" params = { "user_id ": uId, "follow" : "false" } request = twiKey.post(url, params = params)
フォローさせたいなら、こんな感じでパラメータをURLに設定すれば上手く行くようでした。
twiKey = OAuth1Session(consumer, cSecret, accessToken, aSecret) request = twiKey.post("https://api.twitter.com/1.1/friendships/create.json?user_id="+uId+"&follow=true")
こんな感じで書いたら、上手くフォローすることができました。
SSLで接続させないと駄目とか、API制限に引っかかったとか色々検索したら出てきましたが、
自分はリクエストの方法がおかしかったようです。もし良い書き方があれば教えて下さい・・・。