【MACRO】Google Apps Script 質問スレ【DRIVE】

2014/06/29(日) 11:07:03.38ID:5HmND7Qc
Google Apps Script でのプログラミング等に関する質問スレです
Excel や Access の VBA に不満のあるあなた
web アプリだけでなくクライアントアプリからも利用したいあなた
ローカルなデータベースやファイルだとバックアップに不安のあるあなた

ム板に無かったので立ててみます

Google Apps Script
ttps://developers.google.com/apps-script/
Google Drive API
ttps://developers.google.com/drive/
Getting Started with the Google Data Python Library
ttps://developers.google.com/gdata/articles/python_client_lib

■関連スレ
Google Maps API 質問箱
http://peace.2ch.net/test/read.cgi/tech/1131627583/
Microsoft SkyDrive API
http://peace.2ch.net/test/read.cgi/tech/1385604796/
【GoogleAppsScript】猿92【研究せよ!!!】
http://nozomi.2ch.net/test/read.cgi/php/1398600864/
GoogleAPIってどうよ?
http://nozomi.2ch.net/test/read.cgi/php/1018614427/
Google App Engine for Python 6アプ目
http://nozomi.2ch.net/test/read.cgi/php/1358570953/
Google App Engine for java
http://peace.2ch.net/test/read.cgi/tech/1317639323/
GoogleWebToolkit[GWT]について語ろう
http://nozomi.2ch.net/test/read.cgi/php/1147975874/
2014/12/22(月) 07:19:01.01ID:lHFqZpWk
>>161
周りから頭悪いって言われてない?
2014/12/22(月) 08:16:40.37ID:1JxRKZUV
>>161
頭の悪いレスですね
2014/12/22(月) 10:30:02.86ID:Kj8Ds363
うちはtestDoGet()って名前のトリガーが多いな
165デフォルトの名無しさん
垢版 |
2015/01/07(水) 08:21:41.41ID:7s8hjn62
古いけどメモ
http://www.softantenna.com/wp/software/google-ime-dev/
166デフォルトの名無しさん
垢版 |
2015/01/07(水) 08:55:32.09ID:7s8hjn62
memo
http://www.softantenna.com/wp/hard/linux-in-chrome-os/
2015/01/07(水) 10:57:08.64ID:aspvvccd
>>165
>>166
消え失せろカス。
2015/01/07(水) 12:21:43.55ID:HwRBQ0K9
いまどき2ちゃんにアフィ貼っても件数稼げないのにようやるわ
169デフォルトの名無しさん
垢版 |
2015/01/12(月) 13:52:24.61ID:MUt+Twlt
Google Drive のゴミ箱に溜まってたファイルを
永久に削除
を選んで消したのに残り容量が増えないぬ
先週くらいまではゴミ箱空にしたら容量増えたのに
2015/01/14(水) 10:13:25.29ID:pWmctPUO
>>169
恐らくだが
どのフォルダにも属していない、検索の時だけ出てくるファイルがあるよ。消したつもりになってるだけでね。
171デフォルトの名無しさん
垢版 |
2015/01/14(水) 13:03:30.08ID:EnBoJmyV
trash からも delete forever で確実に削除してたのに
さっきログインしたら trash にあった
改めて消したら容量増えた
ありがとう

Google Drive ってたまにバグるみたいだぬ
172デフォルトの名無しさん
垢版 |
2015/01/20(火) 07:56:06.92ID:F6HHv4j5
勝手にアップデートされて以来
GoogleDriveは執事として無能な
時間泥棒に成り下がってしまった
173デフォルトの名無しさん
垢版 |
2015/03/06(金) 13:27:50.63ID:BXX0fucD
AngularJS 2.0 は TypeScript で開発を進めることに
http://techcrunch.com/2015/03/05/microsoft-and-google-collaborate-on-typescript-hell-has-not-frozen-over-yet/

Angular 2: Built on TypeScript
http://blogs.msdn.com/b/typescript/archive/2015/03/05/angular-2-0-built-on-typescript.aspx
2015/03/14(土) 19:02:02.06ID:EXR76peq
Siteで新規ページ作成で自動生成されるurl文字列をscriptで再現する方法はないでしょうか?

たとえば「試験-しけん-シケン」と入力すると自動では「shi-yan-shiken-shiken」というURLになるけど
このルールでスクリプトから新規ページ作成を行いたいと思っているのですが
175デフォルトの名無しさん
垢版 |
2015/03/16(月) 02:46:33.19ID:1GyT2oWU
同じ名前でもう一つ作ってみ?
176デフォルトの名無しさん
垢版 |
2015/03/18(水) 22:55:28.68ID:fCXDEV+f
GASで任意のURLを開くことはできますか?
スプレッドシート上でも別タブでもどちらでも構いません。
2015/03/19(木) 21:40:48.17ID:htgmHUmd
>>176
自動的に開くのは無理
ダイアログ出してクリックさせて開くのはhtmlserviceで実現できる。
178176
垢版 |
2015/03/20(金) 15:56:58.40ID:+pnIcR/c
やはりリンク作ったりするのが精一杯なんですね。
わかりました。
179176
垢版 |
2015/03/20(金) 17:37:45.26ID:+pnIcR/c
HtmlService.createHtmlOutputにiframeタグを書いても
インラインフレームの中に何も表示されないのは仕様ですか?
2015/03/22(日) 13:09:15.36ID:rj7656VH
>>179
GAS上ではiframeタグは使用禁止ですよ。
sandboxmode.iframeは使えますがね
181176
垢版 |
2015/03/22(日) 21:40:15.35ID:Exm92v9O
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
を付けてみてもダメでした。
もちろんNATIVEもダメでしたし、本当にあきらめるしかなさそうですね。

ちなみに表示させようとしていたページのURLは以下です。
http://www.google.com/search?btnI=I%27m+Feeling+Lucky&;lr=lang_ja&ie=UTF-8&oe=UTF-8&q="+ss.getActiveCell().getValue()
2015/03/26(木) 11:07:18.75ID:r/Xr85WG
Googleドライブ上にある複数のxlsを読み込んで、指定した文字を検索するhtmlをドライブ上で共有したいのですが
この場合どうすればいいのでしょうか?script.google.comとかサッパリでした
ある程度の英語とjavascriptは出来るので「ココ嫁」みたいなリファレンス貼ってくれるだけでも助かります
2015/03/26(木) 13:13:42.53ID:XgHUlE+o
>>182
HTML ServiceとDriveApp

そして、siteにそのウェブアプリケーションを配置。
これで出来る。
2015/03/26(木) 13:16:41.94ID:XgHUlE+o
>>182
あと、手前味噌で申し訳ないが、色々作ってる
http://eye4brain.sakura .ne.jp/
2015/03/26(木) 15:18:18.76ID:SuVdMCRs
xls読めるの?
2015/03/26(木) 18:55:43.03ID:r/Xr85WG
>>183>>184
ありがとうございます、スクリプト参考にしてみます
187デフォルトの名無しさん
垢版 |
2015/03/26(木) 20:07:09.55ID:xZ2N6kXB
>>186
xlsxの全文検索をしてみましたが、出来ました。
fullText containsオプションを使えば可能です。

ただし、たけのこという文字がセルに入ってる場合、「たけのこ」ではヒットしますが、「たけ」ではヒットしません。そういう仕様だそうです。以下に完成品をまとめておきましたので、参考にしてみてください。
http://goo. gl/coMk0P
188182
垢版 |
2015/03/27(金) 00:58:25.79ID:DYcS+Siy
度々すみませんGoogleドライブに
・1.xls〜100.xls
・Data_list.xls
とテキストシートがあって、1-100.xls上で行or選択範囲を指定して、その範囲内のテキストを使ってData_listで検索をし、結果を返すというモノを作りたいのですが

@-1〜100まで全部一々スクリプトエディタで作成しなければならないんでしょうか?使いまわしできます?
A-図形描写+スクリプト割り当てでイベントハンドラ作成する方法以外にシートから関数呼び出す方法はないんでしょうか?
B-図形描写+スクリプト割り当てを1〜100まで毎回作成するの大変なんで使いまわしとかできないんでしょうか?
C-関数の引数に行や選択範囲を指定できますか?

本当に初歩的な質問ばかりですみません
openByUrl(Data_list)で読み込んでforで全部回す方法でmatchやったら検索は出来ました
189デフォルトの名無しさん
垢版 |
2015/03/27(金) 08:27:15.70ID:XOU4xnaE
>>188
スクリプトはライブラリ化すれば使い回しが出来ます。
http://goo. gl/ExZZSb
2015/03/29(日) 15:09:18.54ID:Kc5qzo13
>>189
できました
毎度毎度ありがとうございます!
2015/04/06(月) 19:06:09.55ID:Uo28IzYD
script.googleにてディレクトリに存在するファイル全て開いて検索するプロジェクトのgsファイルを作ってるんですが
コード.gsて一度に開けるファイルの数や容量の制限ありますか?
2015/04/07(火) 11:43:06.04ID:Dj35uwLZ
ちょっとした質問なんですけどDriveApp.getRootFolder()みたいに共有アイテムにある「textフォルダ」を取得する方法ってないですか?
2015/04/09(木) 18:24:15.60ID:Rhj0QTuK
こっちで聴いてみては?
http://kanae.2ch.net/test/read.cgi/php/1398600864/
2015/04/11(土) 21:16:39.83ID:yuSJQZvz
1.gmailの受信メールをチェック

2.特定タイトルのメールの送信者を抽出しリストアップ

3.別のリストとマッチングさせメール未送信者を特定

4.未送信者に注意メールを送信

GAS初心者なのですが
上記のようなシステムを構築したいと考えています。
1.2.4はGASとスプレッドシートを使えば簡単に実装できそうなのですが
3もGASやappsのみで構築可能でしょうか?
スプレッドシートのマッチングについて
少し調べて見ましたが、明確な回答は見つかりませんでした。
よろしくお願いします。
2015/04/13(月) 07:45:32.11ID:eHLkbahF
>>194
可能

普通にリニアサーチでメアドリストと1つづつイコールかどうか
確認するループを作ればいいだけ
2015/04/14(火) 08:06:25.22ID:VGcTHgGl
>>195
ありがとうございます!
2015/05/20(水) 20:15:39.64ID:L+8WGw0p
最近始めたんだけどこれmydriveにアップしたExcelを読み込む事は出来ないのかな
getDataAsString()でも文字化けしたのしか取得できないし
スプレッドシートに変換すりゃいいんだろうけどそのまま読み込む方法ないのかね
2015/05/21(木) 08:22:41.16ID:nwV8enKl
>>197
だったら、文字コードでも指定すればいいんじゃねぇの
2015/05/21(木) 08:29:47.62ID:x9iUxaW9
>>198
Excelは文字コード以前に形式違うからstringで取得できない
2015/05/21(木) 09:50:23.52ID:x9iUxaW9
エクセルはどこでも話題になるけどDriveApp.searchFiles()で一応文章検索はできるから
セルのstring情報はどっかに記録されてる
ただ引き出して扱えるかどうか知らん
201デフォルトの名無しさん
垢版 |
2015/05/21(木) 10:56:25.53ID:ESp1pCeJ
馬鹿には無理
2015/05/21(木) 13:26:54.06ID:RCwHiUWn
最高にキモいな
2015/05/22(金) 12:42:30.36ID:jHm+8nxR
>>197
Drive APIを使えば出来るよ。

http://qiita.com/soundTricker/items/16e75762404f560e4ca2
2015/05/23(土) 21:40:53.24ID:P22nVuYt
>>203
1年前のなんて古くて使いモンにならないってのがよくわかるな
oauth 1.0ってアンタ
2015/05/27(水) 08:07:09.69ID:lvaBWQ33
>>204
君はGoogleのドキュメントがろくにメンテされてないこと知ってんの?
それと、GASで使うのにOAuthなんて使わないよw

JavaScriptで使う場合には必要だがそっちだって、OAuth2.0でのコーディングに
関しては別のページにあるし。GASやGoogle APIを弄っている人間とは到底思え
ない発言だなw
2015/05/27(水) 11:08:24.77ID:fMt5EoRl
> それと、GASで使うのにOAuthなんて使わないよw
ひょ、標準APIとの違いも解らない奴がココに居るのか
ちょっとキミにはこのスレちょっと早い
2015/05/27(水) 14:12:37.86ID:GScIfku9
煽るだけで具体例のない言葉は何の役にも立たねって
ばっちゃが言ってた
208デフォルトの名無しさん
垢版 |
2015/05/27(水) 15:16:08.57ID:jmeRjzK/
知らないから自演も満足に出来ないんだろうが
煽り方が下手だと思う
2015/05/27(水) 16:25:43.57ID:smOTLbR3
>>206-207
だから、使ってからほざけよ。

コード書いてみ?GAS内でDrive API使うコードをな。
実際に開発やってる奴に、釈迦に説法って言葉覚えておけよ三流。
2015/05/27(水) 16:29:32.25ID:smOTLbR3
>>204
それとお前。
OAuth1.0だから何?そんなもの自分で2.0の実装でも換装すりゃいいだけの
話だろww

馬鹿なの?それとも2.0のコードでも書けとか言ってるわけ?馬鹿には無理だ
から引っ込んでろ
2015/05/27(水) 20:42:22.92ID:iPQChm+t
なんか急にonEditのe.userにメールアドレスが入ってこなくなったんだが
同じ現象の人いる?
2015/05/28(木) 09:53:52.42ID:/8nOg4qQ
これで良くね
ttp://stackoverflow.com/questions/26702330/why-does-google-apps-script-return-a-url-rather-than-a-pdf-file-when-i-try-to-cr
2015/06/08(月) 08:54:21.97ID:0Vy1Z1yY
>>211
そんなのしょっちゅうあるぜ?
session.userなんてメアド取れなくなったりとかね。
Googleって馬鹿だからバグ採りもせずにデプロイしてやがるのでこういうことがGoogle Apps for Workでも起きていてもんだいになってる。
214デフォルトの名無しさん
垢版 |
2015/06/08(月) 13:38:40.43ID:rJB8iCDI
Googleって独りよがりだよな
215デフォルトの名無しさん
垢版 |
2015/06/11(木) 09:07:55.30ID:DJZgiAWM
書式設定を変えるようなスクリプトを作っても反映されないんだけど、
スプレッドシートの既知の問題?
例えば下のスクリプトを実行すると、既に長い文字列が入ってるセルがあっても
折り返してくれない。
(スクリプト実行後、ボタンはちゃんと「テキストの折り返し」になってるし、ボタン押せば折り返す)

function test() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange('A:A');
range.setWrap(true);
}

この問題って、フォームから文字列が入力されても既に書式設定してあるセルで
同じ事が起きるんだけど、地味に困ってる。
2015/06/12(金) 10:07:42.64ID:7lwiQU6T
TwitterBotを作成しているのですが
OAuth1 for Apps Script
https://github.com/googlesamples/apps-script-oauth1/blob/master/samples/Twitter.gs
にCONSUMER_KEYとCONSUMER_SECRETを入れてrunを実行しても投稿されません。
ログには Open the following URL and re-run the script
表示されるアドレスにアクセスするとSuccess!と表示されますが投稿されません。
どうしたら投稿できるようにできますか?
217216
垢版 |
2015/06/12(金) 10:12:38.54ID:7lwiQU6T
>>216
動きました。すみません。
2015/06/12(金) 16:05:55.82ID:qp6MkQCv
どういたしまして
2015/06/12(金) 17:28:28.59ID:7lwiQU6T
atomのlinkのhrefを取得したいのですがどうすればいいのでしょうか

function kochiRSS() {

var sheet = SpreadsheetApp.getActiveSheet();

var row = 1;

var feedURL = 'http://www.pref.kochi.lg.jp/news/index.atom';

var xml = UrlFetchApp.fetch(feedURL).getContentText();
var document = XmlService.parse(xml);
var root = document.getRootElement();
var atom = XmlService.getNamespace('http://www.w3.org/2005/Atom');

var entries = root.getChildren('entry', atom);

for(i in entries) {
var title = entries[i].getChild('title', atom).getText();
var link = entries[i].getChild('link', atom).getValue();
var updated = entries[i].getChild('updated', atom).getText();

sheet.getRange(row,1).setValue(title);
sheet.getRange(row,2).setValue(link);
sheet.getRange(row,3).setValue(updated);

row++;
}
sheet.sort(3, false);
}
220デフォルトの名無しさん
垢版 |
2015/06/12(金) 18:11:48.05ID:qp6MkQCv
.getAttribute('href').getValue();
221219
垢版 |
2015/06/12(金) 20:37:23.23ID:RT2PlkdQ
220
できましたどうもありがとうございます。
222デフォルトの名無しさん
垢版 |
2015/06/13(土) 03:16:47.88ID:NUKk6CPY
どういたしまして
223219
垢版 |
2015/06/13(土) 08:02:49.41ID:YFXshuK4
たびたびすみません。
RSSを取得するプログラムを作っているのですが

RSS2.0は
var items = root.getChild('channel').getChildren('item');
ATOMは
var entries = root.getChildren('entry', atom);
で取得できるのですが
RSS1.0だとitemが<item rdf:about="記事のURL">なため
var items = root.getChildren('item');
では取得できません。
どういう書き方にすれば取得できるようになるのでしょうか?
224デフォルトの名無しさん
垢版 |
2015/06/13(土) 08:38:19.04ID:NUKk6CPY
馬鹿には無理
2015/06/13(土) 20:19:34.38ID:ZKnt+LAz
なんだこいつ
226デフォルトの名無しさん
垢版 |
2015/06/14(日) 06:25:18.68ID:Gz1SNEoH
馬鹿には(回答は)無理
2015/06/14(日) 06:41:51.88ID:l6qAkUnh
一部変な奴もいるけど気にせずに馬鹿はどんどん質問してくださいな
2015/06/15(月) 13:48:50.97ID:6FCFdlNB
もっとやさしくしてください
229デフォルトの名無しさん
垢版 |
2015/06/15(月) 20:34:44.01ID:TKCLtNo1
正直、DOM系の話題はなしにしたいものだ
DOMの話題ってjsの使い方一辺倒になっちまうから
GASそのものの本質を追究する姿勢が培われなくなってしまう
2015/06/15(月) 20:57:28.70ID:vJyBnBQX
GASはハウツー的な日本語ドキュメントが少ないから仕方ないかと
誰かその辺りをまとめてくれると(俺も)助かるんだがなー…(チラッチラッ
231デフォルトの名無しさん
垢版 |
2015/06/15(月) 23:47:37.55ID:YPgI+YQd
>>223
>RSS1.0だとitemが<item rdf:about="記事のURL">
属性はattributeと言う。
こんな感じかな。
items[0].getAttribute("about","rdf").getValue();

上は未実証なので詳しくはreferenceを参照。
https://developers.google.com/apps-script/reference/xml-service/element#getAttribute(String,Namespace)
232223
垢版 |
2015/06/17(水) 05:49:31.92ID:pjaGN1aW
ありがとうございます。
rdf:aboutのようなのは名前空間というみたいで
XmlService.getNamespaceを指定すると使えるようです。
詳しくはこちらに載っていました。
https://msdn.microsoft.com/ja-jp/library/aa468565.aspx
233デフォルトの名無しさん
垢版 |
2015/06/17(水) 14:14:39.78ID:T4rbUCsj
いやここはGASのスレだしw
XMLの基本を鼻高々に解説されても
2015/06/17(水) 16:12:56.82ID:7KhQ6AFD
>>233
わかればよろしい
2015/06/30(火) 15:54:55.56ID:jfSOFpG/
google apps script のウェブアプリケーションの公開するとき
指定したグーグルアカウントだけに利用させるって出来ないんですかい?
共有でそういうのあったんですけど、共有はコード見れるとかそういうのだったんで
2015/06/30(火) 17:35:30.60ID:0T0Q+C6j
スレ違いだけどできないはずはないと思うよ
appsにアカウント登録できるはず
237デフォルトの名無しさん
垢版 |
2015/07/01(水) 07:45:04.29ID:WrSpGcQO
>>235
1) googleアカウントでログインしてるユーザーだけに実行させることが出来る
2) アプリケーション側でどのアカウントで実行されているか把握することが出来る

1) と 2) を組み合わせれば可能
238235
垢版 |
2015/07/01(水) 15:27:56.64ID:s1huTgGg
出来たよありがとう
"無ければ作れ"がGASでも通用したとか最高だ
2015/07/01(水) 15:58:11.31ID:WrSpGcQO
おめおめ
2015/07/04(土) 14:34:59.39ID:PdgAmMn6
GASに初トライしていて問題にブチあたりました。
解決方法があれば教えてください。


■やりたいこと
スプレッドシート内で
外部ページ情報を取得しリアルタイム・もしくはインターバル更新表示しい。
基本は自動更新

■更新条件
スプレッドシートを開いた
スプレッドシートのセルにユーザーから入力があった。
の両方です。

■ためしたこと。
1.=ImportXMLを使って取り込み
 単純な目的は果たせるがセルに埋め込むと取得データを加工するにしても限度がある。
また、同じURLを指定したセルが複数ある場合、同じデータなのにアクセスさせるのが無駄
2.GASでImportXML相当のことをしてみる
 セルから呼び出せる関数でUrlFetchApp.fetchを使ってみる。
 当初の目的は果たせるようになったが、セルの数が多く、
 またスクリプト実行テストを繰り返しているとあっというまに1日の呼び出し回数制限に達してしまう(無料アカなので2万回)
3.呼び出し制限に達しないようにするための工夫
 URLから取得した情報をプールしておき、前回取得からのインターバル時間を経過したら再取得してキャッシュ更新。
 または、キャッシュに存在しないデータを要求された場合もキャッシュ更新。
 キャッシュ場所は、自分のスプレッドシート内にcacheシートを生成してそこに書き込んでおく。
4.3までのロジック実装は完了し、スクリプトエディタの関数実行テストまでは正常完了

続きます。
2015/07/04(土) 14:44:48.33ID:PdgAmMn6
4からが問題でして、エディタ内の関数単体テストでは、データ取得・キャッシュシート生成まで問題なく動作しました。
 しかし、これの関数をセルから呼び出そうとするとエラーになります。

エラーはシートに対して操作権限がないといわれます。
調べたところセルで関数を呼び出した場合、
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cacheSheet = ss.getSheetByName( g_stocksSheetName );
で取得したシートに対して、作成・修正・削除などの操作が出来ないようです。
つまりセルから呼び出した場合オブジェクトの参照関数しか呼び出しが許可されない?
ss.insertSheet( 'cacheSheet' )
とか
cacheSheet.getRange( 1, 1 ).setValue( new Date() );
もダメでした。

5.イベントハンドラを使ってみる
しょうがないので、書き込み権限を与えてくれそうな仕組みがないかテストしていたところ
onEvent,onOpenなどならいけそうだったので、
onEventから呼び出してみました。
すると、シート作成・データセットまではうまくいきますが、
UrlFetchApp.fetchでエラーになっているらしく、
上流で捉えた例外は
fetch を呼び出す権限がありません
でした。
2015/07/04(土) 14:54:35.26ID:PdgAmMn6
6.キャッシュの保存場所
自分に書き込めない場合、どっかに保存できないの?と思い調べてみると
ScriptDb とか言うのがあるみたいですが、サービス終了予定の機能ぽいですし、
Google Cloud SQLとかいうのを使うしかない?有料??

■知りたい事
・1〜6の流れで問題となっているアクセス権を解決できる方法はありますか?
・無理な場合の代替え手法はありますか?
・そもそもアプローチが間違っている、こうしたほうが良いよ。
という感じでうs。

このまま、いろいろ渡り歩いていても遠回りになりそうな予感なので質問してみました。
よろしくお願いします。
2015/07/04(土) 15:38:30.72ID:IUri6wsi
>>242
htmlservice + oauth2
244240
垢版 |
2015/07/06(月) 03:19:41.60ID:c4e3DSSP
>>243
> >>242
> htmlservice + oauth2
ありがとうございます。
調べてみます。
2015/07/07(火) 01:32:45.09ID:OGGfcKdI
htmlからツイにつぶやくのをやってたら
(>_<)この顔文字が(&gt;_&lt;)こんななってたぶんそのせいででエラー吐くんだけどこれはreplaceすればいいのかな?
こういう表記になる文字ってたくさんあるのかな?
2015/07/07(火) 04:21:52.11ID:FHtVzgus
君にふさわしい板はこっち
http://kanae.2ch.net/php/
2015/07/07(火) 15:42:58.38ID:5Rsbcn5E
>>245
おいてめーそれ「はじめてのホームページビルダー」レベルじゃねぇか
2015/07/08(水) 23:01:03.10ID:oRYg8bj0
>>245
そういうのはエンコードすべきなんじゃないのか?
2015/07/08(水) 23:17:38.40ID:Nj43MlcH
>>246
PHPはちょっと良くわかんないです
gasですし

>>247
そうなんですよね〜
初心者なんです

>>248
エンコードですか
調べてみます
250240
垢版 |
2015/07/12(日) 18:50:40.39ID:yhZDzWcx
>>243
> >>242
> htmlservice + oauth2
あれから調べてみましたが、これらを使ってどうアプローチしていいか分かりませんでした。
どういうアプローチを取って良いのか、もう少し詳しく教えていただけないでしょうか?

自分が上でやっていてダメだったアプローチは以下のAuthorization modesをみると納得なのですが
https://developers.google.com/apps-script/add-ons/lifecycle

これらの状況の中でどうやって目的を達成していいか分かりませんでした。
Htmlservice, oauth2ということだったので、
外部サイト情報から取得したキャッシュをHtmlにしてGoogleDrive側に保存すればいいのかな?
とか思っていたのですが、
AuthMode.LIMITEDやAuthMode.CUSTOM_FUNCTIONでは他のサービスへのアクセスは
Any services that don’t access user data
とのことで、キャッシュを書き込めないようです。
実際に試してみましたが、スクリプト単体テストではOKでしたが、イベントハンドラから呼び出すとDrive周りの関数で権限がないといわれました。

oauth2に関してはいまいちよく分かりませんでした。
他社サービスIDなどで別サイトのサービスにアクセスする場合などの認証などに使ったりするようですが、
Googleのアカウントで自身にログインして何かをしろという事でしょうか?

どちらにしろ、AuthMode.FULLで行えるような権限を得られないと、
・キャッシュを作るための外部サイトアクセスとコンテンツ取得
・取得したコンテンツから生成したキャッシュデータの保存(シートorファイル)
が実現できないと思うのですが、どうでしょう?
251デフォルトの名無しさん
垢版 |
2015/07/12(日) 19:09:03.00ID:slCoB0p4
設定間違えてるに+1
252デフォルトの名無しさん
垢版 |
2015/07/13(月) 17:53:46.10ID:UxTEJ+9t
node.js / io.js 動けばいいのにね
2015/07/15(水) 20:57:05.83ID:70iQnSqB
新たなるオライリー本か?
http://www.amazon.co.jp/dp/B00TN97BE2
2015/07/19(日) 04:21:49.78ID:eNaDFGYO
分かる人がいたら教えて下さい

function upload() {
var clientId = '*************';
var imgUrl = 'http://www.google.co.jp/images/srpr/logo11w.png';
var service = getService(); //aouth2のなんか
if (service.hasAccess()) {
var url = 'https://api.imgur.com/3/image';
var response = UrlFetchApp.fetch(url, { //ここでエラーが出る
method: 'post',
headers: {
Authorization: 'Client-ID ' + clientId,
},
data: {
image: imgUrl,
type: 'URL'
}
});
var result = JSON.parse(response.getContentText());
return result;
} else {

こういうエラーが出ます
{"data":{"error":"No image data was sent to the upload api","request":"\/3\/image","method":"POST"},"success":false,"status":400}
どこが間違えてるんでしょうか

imgur apiのページ
https://api.imgur.com/
255デフォルトの名無しさん
垢版 |
2015/07/19(日) 05:55:09.18ID:EU0ROg42
ttp://www.google.co.jp/images/srpr/logo11w.png
404
The requested URL /images/srpr/logo11w.png'; was not found on this server.
2015/07/19(日) 06:53:12.05ID:eNaDFGYO
普通に繋がるんですが・・・
というか画像のURLに関しては色々試してます
257デフォルトの名無しさん
垢版 |
2015/07/19(日) 07:23:46.52ID:EU0ROg42
さっきはエラってたが
2015/07/19(日) 13:37:40.69ID:Npxm1YBj
http://qiita.com/AKB428/items/a5f68a3288cc596975ae
2015/07/19(日) 14:52:50.12ID:Npxm1YBj
data: {
type: 'base64',
image: 'hogehoge(base64data)hogehoge'
}

ためしてみたけど

400
Image format not supported, or image is corrupt.

なんぞこれ
260デフォルトの名無しさん
垢版 |
2015/07/19(日) 16:20:37.89ID:MA6NEEKT
>>254
OAuth2の認証系をしっかり組んでないからじゃないかね。
http://wp.me/p5KJV2-9k
261デフォルトの名無しさん
垢版 |
2015/07/19(日) 17:02:15.86ID:G63bEDLi
>>254
もう一度よく、下記のURL見て組んでみるヨロし
https://api.imgur.com/oauth2
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況