Help us understand the problem. What is going on with this article?

Gmailのスレッド表示のON/OFFを簡単に切り替える(試行錯誤中)

More than 3 years have passed since last update.

Gmail概ね満足してるんだけど、スレッド表示のON/OFF切り替えが超面倒なのなんとかならんかね?基本はスレッドでいいんだけど、さっき届いたメールどこだっけ?てのが一度既読にするとすぐ見失ったり、何月何日何時頃送ったメールだよとか言われてもリストからすず時間で探せないのが不便。
受信トレイの上部分にタブもしくはチェックボックスとかで常に表示されてていつでも即座に切り替えられると便利なのになぁ。

と思ったのがキッカケ。

色々試してみた結果とりあえずスレッド表示のON/OFFがブックマークレットで出来るようになった!
※ただしまだハックが足らないので手間が必要…。

暫定コード

とりあえずまだ試行錯誤中で完全コピペで使えるものじゃないけど以下の様なコードでスレッド表示ON/OFFが切り替えられる事が分かってきた。

!function(){

function enableGThread(enabled,cb){
  var q_ik = "0d728ef8ba";
  var q_at = "AF9bupM2wS8R_VjW04xAMsAKqlpNG-NkAA";
  var cb = cb || function(){};
  var x = new XMLHttpRequest();
  x.onreadystatechange = function(){
    if(x.readyState == 4 && x.status == 200){
      cb();
    }
  };
  x.open("POST", location.pathname + "?ik=" + q_ik + "&at=" + q_at + "&view=up&act=prefs&rt=c");
  x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  x.send("p_bx_vmb=" + (enabled?"0":"1"));
}

//enableGThread(true, function(){location.reload()}); //ONにする
enableGThread(false, function(){location.reload()}); //OFFにする

}()

これは設定ページの保存するボタンを押した時に投げてるリクエストから不要なパラメータとかを最小限まで削って出来たリクエストです。一応コレでうまく動くことは確認できたんだけど1つ問題が…。

課題

上記コードのクエリを構築してる中で ikat に入ってる謎の値、これがなんだかまだ分かってません。
恐らくログイン中のセッションに紐付いててCSRFトークンみたいなやつだと思う。これは各自のアカウントでデベロッパツールのネットワークとか開きながら一回設定の保存ボタンを押してみるとその時のクエリパラメータから取得が出来る。設定画面を開くたびに毎回変わるみたいだけどでも実は古い値を使いまわしてもちゃんと機能する。
なのでとりあえず一回コピペで取得できたらそれを上記コードに埋め込んでおけば暫く使えるみたいよ。

誰かこの値の取得方法or作り方をもう少しGmailのコード追って調べてくれたら嬉しいな☆

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away