FC2ブログ
カウンター
プロフィール

ユキ

Author:ユキ
FC2ブログへようこそ!

最新記事
カテゴリ
最新コメント
月別アーカイブ
にほんブログ村
にほんブログ村
検索フォーム
RSSリンクの表示
リンク
QRコード
QR

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


↓クリックお願い致します。
にほんブログ村 PC家電ブログ 自作PCへ
にほんブログ村


GAS(Google Apps Script)を使ってTwitterに画像を投稿する方法

今TwitterのbotをGoogleAppsScriptで作っていまして、これが結構便利なんですよ。

GoogleAppsScriptはサーバーを用意しなくても定期的にツイートしたり出来て、サーバーやホームページとかやってない人にはあってると思います。


私はC#やC系ならそれなりに書けるのですが、それ以外はからっきしで、
JavaScriptでコーディングするGoogle Apps Scriptのこと全然わからないので、基本コピペがメインです。
しかし、ただツイートするだけなら多くの先人たちが、サンプルコードを教えてくれているのですが、画像付きでツイートする方法はなかなか検索してもヒットしませんでした。
ヒットしてもPHPだったりでGoogleAppsScriptでは使えない、、、
なので、誰かの役に立てばと思い記事にしておきます。
と言ってもこれも海外のサイトからコピペしただけですけどね。

TwitterやGoogleのアカウントの取得とか、ディベロッパーの設定とかその他諸々は、先人たちがわかりやすく図解付きで解説している方がたくさんいらっしゃるので省略させて頂きます。
「google apps script twitter」で検索すると多数ヒットします。
普通のツイートが出来るようになってから、下記のソースをコピペすれば行けると思います。



2015/08/13追記
下記のソースは今では使えないクラスを使っています。
修正方法は下記の記事にまとめましたので、こちらを御覧ください。
「GAS(Google Apps Script)でOAuthConfigのサポートが終了」


-------------------------------------------------------------------------
//画像アップテスト
function twitterPostTest() {

//OAuthの初期化
var oAuthConfig = UrlFetchApp.addOAuthService("twitter");
oAuthConfig.setAccessTokenUrl("https://api.twitter.com/oauth/access_token");
oAuthConfig.setRequestTokenUrl("https://api.twitter.com/oauth/request_token");
oAuthConfig.setAuthorizationUrl("https://api.twitter.com/oauth/authorize");
//コンシューマキーとセキュリティキーをプロパティから取得
oAuthConfig.setConsumerKey(ScriptProperties.getProperty("twitterConsumerKey"));
oAuthConfig.setConsumerSecret(ScriptProperties.getProperty("twitterConsumerSecret"));



var boundary = "cuthere";

//Googleドライブのルートにある画像を投稿する場合
var picture = DriveApp.getFiles().next().getBlob().setContentTypeFromExtension();

//web上にある画像を投稿する場合はこっち
//var picture = UrlFetchApp.fetch("http://www.test.jpg").getBlob().setContentTypeFromExtension();

//ツイートするテキスト
var status = ("画像投稿テスト");

var requestBody = Utilities.newBlob(
"--"+boundary+"\r\n"
+ "Content-Disposition: form-data; name=\"status\"\r\n\r\n"
+ status+"\r\n"+"--"+boundary+"\r\n"
+ "Content-Disposition: form-data; name=\"media[]\"; filename=\""+picture.getName()+"\"\r\n"
+ "Content-Type: " + picture.getContentType()+"\r\n\r\n").getBytes();

requestBody = requestBody.concat(picture.getBytes());
requestBody = requestBody.concat(Utilities.newBlob("\r\n--"+boundary+"--\r\n").getBytes());

var options = {
method: "post",
contentType: "multipart/form-data; boundary="+boundary,
oAuthServiceName: "twitter",
oAuthUseToken: "always",
payload: requestBody
};
var request = UrlFetchApp.fetch("https://api.twitter.com/1.1/statuses/update_with_media.json", options);
}
-------------------------------------------------------------------------
スポンサーサイト


↓クリックお願い致します。
にほんブログ村 PC家電ブログ 自作PCへ
にほんブログ村



コメントの投稿

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。