libro
www.tuyano.com
Google Apps Scriptプログラミング [中級編]

Google+にアクセスする (6/6)

作成:2014-04-26 09:18
更新:2014-04-26 09:21

■Google+に投稿する

スクリプトを使ってGoogle+に投稿する場合はどうするのでしょう。これも、投稿情報を管理するPlusDomains.Activitiesにメソッドが用意されています。「insert」というもので、以下のような形で実行します。

●Google+に投稿する
PlusDomains.Activities
  .insert( 投稿内容 , ユーザーID );

引数には投稿内容をまとめたオブジェクトと、投稿するユーザーのIDが指定されます。このユーザーIDは、基本的にアクセス権を持っているユーザーでないと投稿できません。これはイコール「自分自身」と考えてよいでしょう。この場合、IDを指定するのでなく、"me"とすれば自分の投稿として扱われます。

問題は投稿内容のオブジェクトでしょう。これは少々込み入った構造をしています。整理すると以下のようになるでしょう。
{
  object: {
    originalContent: オリジナルのコンテンツ
  },
  access: {
    items:[ { type: タイプ } ],
    domainrestricted: 真偽値
  }
};
やはり、JSONのようにJavaScriptとして内容をまとめてあります。この中には「objectと」「access」という2つのプロパティがあり、それぞれに更にオブジェクトが用意されています。

●originalContentについて
投稿する内容は、originalContentに設定します。contentではなく、originalContentとなっているのは、この投稿が(再共有などでなく)最初のオリジナルの投稿となるためです。従って、必ずoriginalContentに内容を設定します。

●typeについて
この中で注意が必要なのは、access内にあるitemsの「type」でしょう。これは、その投稿の公開範囲を示すものになります。用意されている値は以下のようになります。

person――自分専用の非公開
circle――サークルメンバー
myCircles――全てのサークルメンバー
extendedCircles――サークルメンバーのサークルまで
domain――Google Appsドメイン内
public――一般公開

●domainrestrictedについて
typeとは別に、アクセス権に関するものとして「domainrestricted」というプロパティが用意されています。これは、公開範囲をドメイン内に限定するためのものです。これをtrueにすると、typeでどのように設定されているかに関係なく、ユーザーの所属ドメインの外からは見えなくなります。

重要なのは、「現時点でdomainrestrictedfalseにできない」という点でしょう。現在のGoogle+ Domains APIでは、Google Appsのドメイン内でのみ使えるよう機能が制限されています。従って、typepublicにしても、ドメイン外に公開される投稿は行えません。

おそらく、ドメイン外にも投稿できるようにいずれAPIもアップデートされると思いますが、今のところは「ドメイン外への投稿は無理」と考えておきましょう。――では、下に簡単なサンプルを挙げておきます。ドメイン内で公開された投稿を行うものです。originalContentのテキストをいろいろと変更して投稿される内容を確認してみましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function postnow() {
  var userId = 'me';
  var postdata = {
    object: {
      originalContent: 'テスト投稿です。'
    },
    access: {
      items: [{
        type: 'public'
      }],
      domainRestricted: true
    }
  };
  post = PlusDomains.Activities.insert(postdata, userId);
}
※関連コンテンツ

「Google Apps Scriptプログラミング [中級編]」に戻る