google reader 非公式APIについて 既読リクエストの方法


既読処理をしたくて、下記のようにリクエストをしているのですがエラーになってまいます。
400エラーが返ってくるので、リクエストのパラメータが間違ってると思うのですが、どこが間違っているのかご指摘頂ければと思います。

例えば

フィード : feed/http://feeds.gizmodo.jp/rss/gizmodo/index.xml
アイテムID : tag:google.com,2005:reader/item/df911d948a49a6c4
(アイテムIDはエンコードして : tag%3agoogle%2ecom%2c2005%3areader%2fitem%2fdf911d948a49a6c4)

というアイテムを既読にしたい場合

https://www.google.com/reader/api/0/edit-tag?i=tag%3agoogle%2ecom%2c2005%3areader%2fitem%2fdf911d948a49a6c4&a=user/-/state/com.google/read&s=feed/http://feeds.gizmodo.jp/rss/gizmodo/index.xml&T=eW4x6yrobWnR9I7f8S_fRA

とリクエストしているのですが、エラーが返ってきます。
token(T=)が有効なのは30分だけということなので、リクエストする前に必ず新しいのを取得しています。

ご指摘よろしくお願いします。

回答の条件
  • 1人10回まで
  • 13歳以上
  • 登録:
  • 終了:2013/01/12 19:25:01
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.2

回答回数4964ベストアンサー獲得回数2150

ポイント190pt

まず、Token については、レスポンスヘッダを確認してみましょう。
"X-Reader-Google-Bad-Token" = true;
は、返ってきてませんか?


何を使ってリクエストを送ってるのか分からないので、想像なんですけど、POST でリクエストを送ってないんじゃないでしょうか。

GET で送ってて、400 が返ってきてた人(ページのコメント)。

GETとPOSTで勘違いしていた所がありました。
URLの?~がすべてデータを送信するPOSTだと思っていました。しかし、それはGETでPOSTはURLとは別にデータをp送信するのですね。

http://cathval.com/csharp/871

POST で送ってたんだけど、リクエストヘッダで Content-Type を指定してなかった人(ページの後半)。

何気ない POST パラメータを送信する POST 処理なのだが、gdata.service.Post は aplication/atom+xml形式のデータ送信を想定するため、明示的に Content-Typeを指定する必要がある!気づくまで、「400 Bad Request」+「X-Reader-Google-Bad-Token: true」に悩まされてしまった。

http://moimoitei.blogspot.jp/2011/03/google-python-google-reader-api.html
id:chucker34

この辺の情報は初めてなので、後ほど試してみます。

質問の終了は少し時間下さい。

2013/01/12 18:03:34
id:chucker34

単純に通信方式をPOSTにしたら成功しました。

ありがとうございました。

2013/01/12 19:23:43

その他の回答1件)

id:oil999 No.1

回答回数1728ベストアンサー獲得回数320

ポイント10pt

認証用のAuth、SID、LSIDは設定していますか?
下記をご覧ください。
http://d.hatena.ne.jp/tank1206/20120707/1341628157

他1件のコメントを見る
id:oil999

既読処理はPOSTでパラメータを渡してやる必要があります。

2013/01/12 18:49:15
id:chucker34

すいません。こちらの補足に気づく前に終了してしまいました。気づいていればポイントを均等に振り分けたのですが・・・。申し訳ないです。

2013/01/12 19:27:27
id:a-kuma3 No.2

回答回数4964ベストアンサー獲得回数2150ここでベストアンサー

ポイント190pt

まず、Token については、レスポンスヘッダを確認してみましょう。
"X-Reader-Google-Bad-Token" = true;
は、返ってきてませんか?


何を使ってリクエストを送ってるのか分からないので、想像なんですけど、POST でリクエストを送ってないんじゃないでしょうか。

GET で送ってて、400 が返ってきてた人(ページのコメント)。

GETとPOSTで勘違いしていた所がありました。
URLの?~がすべてデータを送信するPOSTだと思っていました。しかし、それはGETでPOSTはURLとは別にデータをp送信するのですね。

http://cathval.com/csharp/871

POST で送ってたんだけど、リクエストヘッダで Content-Type を指定してなかった人(ページの後半)。

何気ない POST パラメータを送信する POST 処理なのだが、gdata.service.Post は aplication/atom+xml形式のデータ送信を想定するため、明示的に Content-Typeを指定する必要がある!気づくまで、「400 Bad Request」+「X-Reader-Google-Bad-Token: true」に悩まされてしまった。

http://moimoitei.blogspot.jp/2011/03/google-python-google-reader-api.html
id:chucker34

この辺の情報は初めてなので、後ほど試してみます。

質問の終了は少し時間下さい。

2013/01/12 18:03:34
id:chucker34

単純に通信方式をPOSTにしたら成功しました。

ありがとうございました。

2013/01/12 19:23:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません