1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Apps ScriptAdvent Calendar 2015

Day 23

みんな大好きGoogle+のプロフィール登録状況をチェックしてみた!

Posted at

#【まえがき】
みんな大好きGoogle+のプロフィール登録状況をチェックしてみた。ということで、
Google+を社内展開した時に、
ちゃんとプロフィールの登録が済んでいるかをチェックするために作ってみました。

#【めんどくさくてやらなかったこと】
ドメイン内のユーザーの取得をGASで引っこ抜けば常に最新にできたのでは・・・
と思いながらも時間が無かったので、社内のEmailのマスタからコピー・・・

#【作成したもの】
####★SpreadSheet 1シート
A列:部署名(Emailマスタとともにもってきた)
B列:氏名(Emailマスタとともにもってきた)
C列:Emailアドレス(キー項目として使用)
D列:取得したGoogle+プロフィールURL
E列:取得したGoogle+のユーザーID
F列:取得日時

####★GoogleAppsScript 1本

#【注意事項】
リソース⇒Googleの拡張サービス
⇒「Google+ Domains API」を有効化してください!

getProfile.gs
function getProfile() {
  var now = new Date();
  var start         = Utilities.formatDate(now, "Asia/Tokyo", "yyyy/MM/dd hh:mm");  
  var today         = Utilities.formatDate(now, "Asia/Tokyo", "yyyy/MM/dd");

  Logger.log("プロフィール取得処理 開始時刻:"+start);
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var SheetValues = sheet.getDataRange().getValues(); //シートのデータを取得
  var LastRow = sheet.getLastRow(); //最後の行番号を取得
  for(var i=2;i<=LastRow;i++) { 
    var end  = new Date();
    var span = end - now;
    if(span < 5*60*1000){ //処理エラーを起こしたくないから             
      var id = SheetValues[i-1][4];
      if(id == "" || id == "プロフィールなし"){        
        var date_check = SheetValues[i-1][5];
        if(date_check !== ""){
          var date_check = Utilities.formatDate(date_check, "Asia/Tokyo", "yyyy/MM/dd")
          }else{
            var date_check = "2014/01/01";
          }
        if(date_check < today ){
          try{        
            var userId = SheetValues[i-1][2];
            var profile = PlusDomains.People.get(userId);
            sheet.getRange(i,4).setValue(profile.url); 
            sheet.getRange(i,5).setValue(profile.id); 
          }catch(e){
            sheet.getRange(i,4).setValue("プロフィールなしor取得できませんでした");       
          }
          sheet.getRange(i,6).setValue(today);
        }
      }
    } else{      
      Logger.log("5分経過したため終了");
      SpreadsheetApp.flush();
      return;
    }
  }
  var end         = Utilities.formatDate(new Date(), "Asia/Tokyo", "yyyy/MM/dd hh:mm");   
  Logger.log("終了時刻:"+end);
}

#【ポイント】
下記の箇所で、アカウントが無くなった人を飛ばすようにして、エラーを回避
try{
}catch(e){
}

#【まとめ】
E列の"プロフィールなし"以外のカウントをどっか別シートにしておけば、
登録者数の推移がとれますよー
⇒さらにグラフにしとけば報告も楽チン

さらにUserIDを使えば、投稿を全部取ってくることもできるし、
さらにさらにとってきた投稿の共有権限をチェックすれば、
外部に誤って共有されてしまっている情報がないかもチェックできます。

そこも作ってあるけど、そこはまた別の機会に…
コメント等で要望があれば・・・

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?