愛と勇気と缶ビール

ふしぎとぼくらはなにをしたらよいか

メールのURLをクリックしたくないです

なんかこう、メールアドレスを入力させて、メールに書いてあるリンクをクリックしてユーザ登録してね!みたいなサービスがあるじゃないですか。

ああいうのを自動化したい時って、もちろんPOP3とかでメールを取りに行ってもいいんだけど、GmailならGoogle Apps Scriptでメールの内容を取れるので、それを利用して単にHTTPでGETするだけでクリッコすべきURLが取れるWebアプリもどきを作ることが出来ます。

function getRegisterURL() {
  // 特定のワードでメールを検索して、先頭のを取り出して
  var threads = GmailApp.search("[service name]");
  var thread = threads.shift();
  var mail = thread.getMessages()[0];

  // 正規表現で適当にURL抜き出して
  var body = mail.getBody();
  var matches = body.match(/http:\/\/.+(?=<br)/);
  var registerURL = matches[0];

  // 次のに備えてこのメールは消して...
  mail.moveToTrash();

  // URLを返す
  return registerURL;
}

// Google Apps Script (WebAppとして公開) では、doGetで返したものがレスポンスになる
function doGet() {
  return ContentService.createTextOutput(getRegisterURL());
}

Googleアカウントのセッションなしでこれを取るためには結局誰でも見られるように設定するしかないので、色々ザルであることに注意してください。

良い子は悪いことに使っちゃだめよん。