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