[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 12/13 18:40 / Filesize : 287 KB / Number-of Response : 981
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2014/06/29(日) 11:07:03.38 ID:5HmND7Qc.net]
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 質問箱
peace.2ch.net/test/read.cgi/tech/1131627583/
Microsoft SkyDrive API
peace.2ch.net/test/read.cgi/tech/1385604796/
【GoogleAppsScript】猿92【研究せよ!!!】
nozomi.2ch.net/test/read.cgi/php/1398600864/
GoogleAPIってどうよ?
nozomi.2ch.net/test/read.cgi/php/1018614427/
Google App Engine for Python 6アプ目
nozomi.2ch.net/test/read.cgi/php/1358570953/
Google App Engine for java
peace.2ch.net/test/read.cgi/tech/1317639323/
GoogleWebToolkit[GWT]について語ろう
nozomi.2ch.net/test/read.cgi/php/1147975874/

144 名前:デフォルトの名無しさん [2014/12/05(金) 08:40:33.92 ID:uibbdYqE.net]
>>134
遅くなる理由
https://developers.google.com/apps-script/guide_libraries
Warning: A script that uses a library will not run as quickly as it would
if all the code were contained within a single script project.
Although libraries can make development and maintenance more convenient,
you should avoid them in projects where speed is critical.
Because of this issue, libraries should not be used in add-ons.

https://developers.google.com/apps-script/best_practices#avoidLibraries
https://developers.google.com/apps-script/add-ons/

145 名前:デフォルトの名無しさん mailto:sage [2014/12/05(金) 09:24:04.62 ID:NyP973bT.net]
要するに結局使えねーってことじゃね

146 名前:デフォルトの名無しさん mailto:sage [2014/12/05(金) 12:21:33.66 ID:S74tDLHo.net]
パフォーマンスの良いGASの書き方
www.slideshare.net/soundTricker/gas-best-practice
(このおっさんによれば70倍くらい簡単に速度変わるそうです)

147 名前:デフォルトの名無しさん mailto:sage [2014/12/05(金) 12:48:37.41 ID:3N+Ki0BW.net]
>>145
まぁ、例え効率の良い書き方をしたとしても、それでも全然ローカル
でやるのに比べたら、比べるまでもなく遅いけれどね。

148 名前:デフォルトの名無しさん [2014/12/05(金) 17:28:33.29 ID:X46M6Pii.net]
プログラムは全くの素人なのですが、フォームに入力された内容をメールで送るスクリプトをネットからコピペしました。最初は上手くおくれたのですが、途中から
i.imgur.com/8hI4jzt.jpg
のようなエラーが出てメール送れなくなりました。解決策がわかりません。ご存知な方、教えて頂けますか?

149 名前:デフォルトの名無しさん mailto:sage [2014/12/06(土) 12:20:43.07 ID:cu1CMwBP.net]
Cacheが最大250文字のキーで各キー毎に100KBで最大6時間保持可能というところまでは読めたのですが
KeyValueのペアは最大何個まで作れるのでしょうか?
https://developers.google.com/apps-script/reference/cache/

150 名前:デフォルトの名無しさん mailto:sage [2014/12/06(土) 15:41:58.87 ID:7IWME+c9.net]
MailAppとGmailAppはどういうときに使い分けますか

151 名前:デフォルトの名無しさん mailto:sage [2014/12/07(日) 18:52:37.92 ID:uc0Y93wp.net]
新しい Google スプレッドシート
[ツール] メニュー > [スクリプト マネージャ]

スクリプト マネージャが無いんですけど、どこへ行ったの?

152 名前:デフォルトの名無しさん mailto:sage [2014/12/08(月) 10:27:16.23 ID:eZuxZoZp.net]
learn more じゃなくて dismiss してひどいめにあった
https://support.google.com/docs/answer/6082736?p=old_sheets_migrate&rd=1



153 名前:デフォルトの名無しさん mailto:sage [2014/12/10(水) 12:32:16.98 ID:2OX9Sm8y.net]
Internal Server Error

Error 500

わろた
あかんやろこれ

154 名前:デフォルトの名無しさん mailto:sage [2014/12/10(水) 12:56:29.75 ID:v5e5mm45.net]
>>153
何回かリトライするといける

155 名前:デフォルトの名無しさん mailto:sage [2014/12/10(水) 13:50:01.10 ID:evPa2cl4.net]
状況が変わった

ログイン出来るようになったけど
ルートの画面で

Google Drive was unable to load your items. Please refresh to try again. (Dismiss)

って出て何も操作出来ない

どうみても輻輳です本当にありがとうございました

156 名前:デフォルトの名無しさん [2014/12/12(金) 20:12:42.74 ID:ZKEOL7uD.net]
google plus apiもここで良いのかな?
こういう大量に画像があるページから画像をぶっこ抜こうと思ってjson取得したんだけどな、15枚しか画像リンクを教えてくれないんだわ
https://plus.google.com/109057690948151627836/posts/6Q6cv5KNYef#109057690948151627836/posts/6Q6cv5KNYef

これがjsonの抜粋
xxxxxxxxxxxx.net/_/86/20141212201047-0.txt

やり方分かる人いる?

157 名前:デフォルトの名無しさん mailto:sage [2014/12/13(土) 06:19:49.76 ID:KcZztYF+.net]
nextToken送ってるかい

158 名前:デフォルトの名無しさん [2014/12/13(土) 10:37:05.12 ID:LHF4FOqU.net]
>>157
アクティビティーのnextTokenは送ってるが、画像にもnextToken送れるんか・・?

159 名前:デフォルトの名無しさん [2014/12/16(火) 13:32:07.41 ID:PuXxa6T9.net]
尾骶骨

160 名前:155 mailto:sage [2014/12/20(土) 15:58:34.92 ID:2lHjoIS9.net]
自己解決した。スレ汚しスマソ

161 名前:デフォルトの名無しさん [2014/12/21(日) 17:54:05.71 ID:gQMH/TzB.net]
トリガーをいくつか設定してみたけど
違うプロジェクトに同じ名前の関数があるとき
トリガーの一覧には関数名しか出て来ないので
どのプロジェクトの関数が呼ばれるのかあとで判らなくなるな

162 名前:デフォルトの名無しさん mailto:sage [2014/12/22(月) 04:11:59.65 ID:bPTJ7mQh.net]
myFunction とか doGet とか言う名前のトリガーがいっぱいなんですね判ります



163 名前:デフォルトの名無しさん mailto:sage [2014/12/22(月) 07:19:01.01 ID:lHFqZpWk.net]
>>162
周りから頭悪いって言われてない?

164 名前:デフォルトの名無しさん mailto:sage [2014/12/22(月) 08:16:40.37 ID:1JxRKZUV.net]
>>162
頭の悪いレスですね

165 名前:デフォルトの名無しさん mailto:sage [2014/12/22(月) 10:30:02.86 ID:Kj8Ds363.net]
うちはtestDoGet()って名前のトリガーが多いな

166 名前:デフォルトの名無しさん mailto:sage [2015/01/06(火) 23:11:18.84 ID:Ubhx8o8Fm]
特殊文字って入力できる?¥だとそのまま表示されて\でやるとどれも空白になるんだけど

167 名前:デフォルトの名無しさん [2015/01/07(水) 08:21:41.41 ID:7s8hjn62.net]
古いけどメモ
www.softantenna.com/wp/software/google-ime-dev/

168 名前:デフォルトの名無しさん [2015/01/07(水) 08:55:32.09 ID:7s8hjn62.net]
memo
www.softantenna.com/wp/hard/linux-in-chrome-os/

169 名前:デフォルトの名無しさん mailto:sage [2015/01/07(水) 10:57:08.64 ID:aspvvccd.net]
>>167
>>168
消え失せろカス。

170 名前:デフォルトの名無しさん mailto:sage [2015/01/07(水) 12:21:43.55 ID:HwRBQ0K9.net]
いまどき2ちゃんにアフィ貼っても件数稼げないのにようやるわ

171 名前:デフォルトの名無しさん [2015/01/12(月) 13:52:24.61 ID:MUt+Twlt.net]
Google Drive のゴミ箱に溜まってたファイルを
永久に削除
を選んで消したのに残り容量が増えないぬ
先週くらいまではゴミ箱空にしたら容量増えたのに

172 名前:デフォルトの名無しさん mailto:sage [2015/01/14(水) 10:13:25.29 ID:pWmctPUO.net]
>>171
恐らくだが
どのフォルダにも属していない、検索の時だけ出てくるファイルがあるよ。消したつもりになってるだけでね。



173 名前:デフォルトの名無しさん [2015/01/14(水) 13:03:30.08 ID:EnBoJmyV.net]
trash からも delete forever で確実に削除してたのに
さっきログインしたら trash にあった
改めて消したら容量増えた
ありがとう

Google Drive ってたまにバグるみたいだぬ

174 名前:デフォルトの名無しさん [2015/01/20(火) 07:56:06.92 ID:F6HHv4j5.net]
勝手にアップデートされて以来
GoogleDriveは執事として無能な
時間泥棒に成り下がってしまった

175 名前:デフォルトの名無しさん [2015/03/06(金) 13:27:50.63 ID:BXX0fucD.net]
AngularJS 2.0 は TypeScript で開発を進めることに
techcrunch.com/2015/03/05/microsoft-and-google-collaborate-on-typescript-hell-has-not-frozen-over-yet/

Angular 2: Built on TypeScript
blogs.msdn.com/b/typescript/archive/2015/03/05/angular-2-0-built-on-typescript.aspx

176 名前:デフォルトの名無しさん mailto:sage [2015/03/14(土) 19:02:02.06 ID:EXR76peq.net]
Siteで新規ページ作成で自動生成されるurl文字列をscriptで再現する方法はないでしょうか?

たとえば「試験-しけん-シケン」と入力すると自動では「shi-yan-shiken-shiken」というURLになるけど
このルールでスクリプトから新規ページ作成を行いたいと思っているのですが

177 名前:デフォルトの名無しさん [2015/03/16(月) 02:46:33.19 ID:1GyT2oWU.net]
同じ名前でもう一つ作ってみ?

178 名前:デフォルトの名無しさん [2015/03/18(水) 22:55:28.68 ID:fCXDEV+f.net]
GASで任意のURLを開くことはできますか?
スプレッドシート上でも別タブでもどちらでも構いません。

179 名前:デフォルトの名無しさん mailto:sage [2015/03/19(木) 21:40:48.17 ID:htgmHUmd.net]
>>178
自動的に開くのは無理
ダイアログ出してクリックさせて開くのはhtmlserviceで実現できる。

180 名前:176 mailto:sage [2015/03/20(金) 15:56:58.40 ID:+pnIcR/c.net]
やはりリンク作ったりするのが精一杯なんですね。
わかりました。

181 名前:176 mailto:sage [2015/03/20(金) 17:37:45.26 ID:+pnIcR/c.net]
HtmlService.createHtmlOutputにiframeタグを書いても
インラインフレームの中に何も表示されないのは仕様ですか?

182 名前:デフォルトの名無しさん mailto:sage [2015/03/22(日) 13:09:15.36 ID:rj7656VH.net]
>>181
GAS上ではiframeタグは使用禁止ですよ。
sandboxmode.iframeは使えますがね



183 名前:176 mailto:sage [2015/03/22(日) 21:40:15.35 ID:Exm92v9O.net]
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
を付けてみてもダメでした。
もちろんNATIVEもダメでしたし、本当にあきらめるしかなさそうですね。

ちなみに表示させようとしていたページのURLは以下です。
www.google.com/search?btnI=I%27m+Feeling+Lucky&lr=lang_ja&ie=UTF-8&oe=UTF-8&q="+ss.getActiveCell().getValue()

184 名前:デフォルトの名無しさん mailto:sage [2015/03/26(木) 11:07:18.75 ID:r/Xr85WG.net]
Googleドライブ上にある複数のxlsを読み込んで、指定した文字を検索するhtmlをドライブ上で共有したいのですが
この場合どうすればいいのでしょうか?script.google.comとかサッパリでした
ある程度の英語とjavascriptは出来るので「ココ嫁」みたいなリファレンス貼ってくれるだけでも助かります

185 名前:デフォルトの名無しさん mailto:sage [2015/03/26(木) 13:13:42.53 ID:XgHUlE+o.net]
>>184
HTML ServiceとDriveApp

そして、siteにそのウェブアプリケーションを配置。
これで出来る。

186 名前:デフォルトの名無しさん mailto:sage [2015/03/26(木) 13:16:41.94 ID:XgHUlE+o.net]
>>184
あと、手前味噌で申し訳ないが、色々作ってる
eye4brain.sakura .ne.jp/

187 名前:デフォルトの名無しさん mailto:sage [2015/03/26(木) 15:18:18.76 ID:SuVdMCRs.net]
xls読めるの?

188 名前:デフォルトの名無しさん mailto:sage [2015/03/26(木) 18:55:43.03 ID:r/Xr85WG.net]
>>185>>186
ありがとうございます、スクリプト参考にしてみます

189 名前:デフォルトの名無しさん [2015/03/26(木) 20:07:09.55 ID:xZ2N6kXB.net]
>>188
xlsxの全文検索をしてみましたが、出来ました。
fullText containsオプションを使えば可能です。

ただし、たけのこという文字がセルに入ってる場合、「たけのこ」ではヒットしますが、「たけ」ではヒットしません。そういう仕様だそうです。以下に完成品をまとめておきましたので、参考にしてみてください。
goo. gl/coMk0P

190 名前:182 mailto:sage [2015/03/27(金) 00:58:25.79 ID:DYcS+Siy.net]
度々すみません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やったら検索は出来ました

191 名前:デフォルトの名無しさん [2015/03/27(金) 08:27:15.70 ID:XOU4xnaE.net]
>>190
スクリプトはライブラリ化すれば使い回しが出来ます。
goo. gl/ExZZSb

192 名前:デフォルトの名無しさん mailto:sage [2015/03/29(日) 15:09:18.54 ID:Kc5qzo13.net]
>>191
できました
毎度毎度ありがとうございます!



193 名前:デフォルトの名無しさん mailto:sage [2015/04/06(月) 19:06:09.55 ID:Uo28IzYD.net]
script.googleにてディレクトリに存在するファイル全て開いて検索するプロジェクトのgsファイルを作ってるんですが
コード.gsて一度に開けるファイルの数や容量の制限ありますか?

194 名前:デフォルトの名無しさん mailto:sage [2015/04/07(火) 11:43:06.04 ID:Dj35uwLZ.net]
ちょっとした質問なんですけどDriveApp.getRootFolder()みたいに共有アイテムにある「textフォルダ」を取得する方法ってないですか?

195 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 18:24:15.60 ID:Rhj0QTuK.net]
こっちで聴いてみては?
kanae.2ch.net/test/read.cgi/php/1398600864/

196 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 21:16:39.83 ID:yuSJQZvz.net]
1.gmailの受信メールをチェック

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

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

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

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

197 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 07:45:32.11 ID:eHLkbahF.net]
>>196
可能

普通にリニアサーチでメアドリストと1つづつイコールかどうか
確認するループを作ればいいだけ

198 名前:デフォルトの名無しさん mailto:sage [2015/04/14(火) 08:06:25.22 ID:VGcTHgGl.net]
>>197
ありがとうございます!

199 名前:デフォルトの名無しさん mailto:sage [2015/05/20(水) 20:15:39.64 ID:L+8WGw0p.net]
最近始めたんだけどこれmydriveにアップしたExcelを読み込む事は出来ないのかな
getDataAsString()でも文字化けしたのしか取得できないし
スプレッドシートに変換すりゃいいんだろうけどそのまま読み込む方法ないのかね

200 名前:デフォルトの名無しさん mailto:sage [2015/05/21(木) 08:22:41.16 ID:nwV8enKl.net]
>>199
だったら、文字コードでも指定すればいいんじゃねぇの

201 名前:デフォルトの名無しさん mailto:sage [2015/05/21(木) 08:29:47.62 ID:x9iUxaW9.net]
>>200
Excelは文字コード以前に形式違うからstringで取得できない

202 名前:デフォルトの名無しさん mailto:sage [2015/05/21(木) 09:50:23.52 ID:x9iUxaW9.net]
エクセルはどこでも話題になるけどDriveApp.searchFiles()で一応文章検索はできるから
セルのstring情報はどっかに記録されてる
ただ引き出して扱えるかどうか知らん



203 名前:デフォルトの名無しさん [2015/05/21(木) 10:56:25.53 ID:ESp1pCeJ.net]
馬鹿には無理

204 名前:デフォルトの名無しさん mailto:sage [2015/05/21(木) 13:26:54.06 ID:RCwHiUWn.net]
最高にキモいな

205 名前:デフォルトの名無しさん mailto:sage [2015/05/22(金) 12:42:30.36 ID:jHm+8nxR.net]
>>199
Drive APIを使えば出来るよ。

qiita.com/soundTricker/items/16e75762404f560e4ca2

206 名前:デフォルトの名無しさん mailto:sage [2015/05/23(土) 21:40:53.24 ID:P22nVuYt.net]
>>205
1年前のなんて古くて使いモンにならないってのがよくわかるな
oauth 1.0ってアンタ

207 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 08:07:09.69 ID:lvaBWQ33.net]
>>206
君はGoogleのドキュメントがろくにメンテされてないこと知ってんの?
それと、GASで使うのにOAuthなんて使わないよw

JavaScriptで使う場合には必要だがそっちだって、OAuth2.0でのコーディングに
関しては別のページにあるし。GASやGoogle APIを弄っている人間とは到底思え
ない発言だなw

208 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 11:08:24.77 ID:fMt5EoRl.net]
> それと、GASで使うのにOAuthなんて使わないよw
ひょ、標準APIとの違いも解らない奴がココに居るのか
ちょっとキミにはこのスレちょっと早い

209 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 14:12:37.86 ID:GScIfku9.net]
煽るだけで具体例のない言葉は何の役にも立たねって
ばっちゃが言ってた

210 名前:デフォルトの名無しさん [2015/05/27(水) 15:16:08.57 ID:jmeRjzK/.net]
知らないから自演も満足に出来ないんだろうが
煽り方が下手だと思う

211 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 16:25:43.57 ID:smOTLbR3.net]
>>208-209
だから、使ってからほざけよ。

コード書いてみ?GAS内でDrive API使うコードをな。
実際に開発やってる奴に、釈迦に説法って言葉覚えておけよ三流。

212 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 16:29:32.25 ID:smOTLbR3.net]
>>206
それとお前。
OAuth1.0だから何?そんなもの自分で2.0の実装でも換装すりゃいいだけの
話だろww

馬鹿なの?それとも2.0のコードでも書けとか言ってるわけ?馬鹿には無理だ
から引っ込んでろ



213 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 20:42:22.92 ID:iPQChm+t.net]
なんか急にonEditのe.userにメールアドレスが入ってこなくなったんだが
同じ現象の人いる?

214 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 09:53:52.42 ID:/8nOg4qQ.net]
これで良くね
ttp://stackoverflow.com/questions/26702330/why-does-google-apps-script-return-a-url-rather-than-a-pdf-file-when-i-try-to-cr

215 名前:デフォルトの名無しさん [2015/06/02(火) 10:59:19.63 ID:CxAq+Stxh]
書式設定を変えるようなスクリプトを作っても反映されないんだけど、
スプレッドシートの既知の問題?
例えば下のスクリプトを実行すると、既に長い文字列が入ってるセルがあっても
折り返してくれない。
(ボタンはちゃんと「テキストの折り返し」になってるし、ボタン押せば折り返す)

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

この問題って、既に書式設定してあるセルにフォームから文字列が入力されても
同じ事が起きるんだけど、地味に困ってる。

216 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 08:54:21.97 ID:0Vy1Z1yY.net]
>>213
そんなのしょっちゅうあるぜ?
session.userなんてメアド取れなくなったりとかね。
Googleって馬鹿だからバグ採りもせずにデプロイしてやがるのでこういうことがGoogle Apps for Workでも起きていてもんだいになってる。

217 名前:デフォルトの名無しさん [2015/06/08(月) 13:38:40.43 ID:rJB8iCDI.net]
Googleって独りよがりだよな

218 名前:デフォルトの名無しさん [2015/06/11(木) 09:07:55.30 ID:DJZgiAWM.net]
書式設定を変えるようなスクリプトを作っても反映されないんだけど、
スプレッドシートの既知の問題?
例えば下のスクリプトを実行すると、既に長い文字列が入ってるセルがあっても
折り返してくれない。
(スクリプト実行後、ボタンはちゃんと「テキストの折り返し」になってるし、ボタン押せば折り返す)

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

この問題って、フォームから文字列が入力されても既に書式設定してあるセルで
同じ事が起きるんだけど、地味に困ってる。

219 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 10:07:42.64 ID:7lwiQU6T.net]
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!と表示されますが投稿されません。
どうしたら投稿できるようにできますか?

220 名前:216 mailto:sage [2015/06/12(金) 10:12:38.54 ID:7lwiQU6T.net]
>>219
動きました。すみません。

221 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 16:05:55.82 ID:qp6MkQCv.net]
どういたしまして

222 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 17:28:28.59 ID:7lwiQU6T.net]
atomのlinkのhrefを取得したいのですがどうすればいいのでしょうか

function kochiRSS() {

var sheet = SpreadsheetApp.getActiveSheet();

var row = 1;

var feedURL = '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('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);
}



223 名前:デフォルトの名無しさん [2015/06/12(金) 18:11:48.05 ID:qp6MkQCv.net]
.getAttribute('href').getValue();

224 名前:219 [2015/06/12(金) 20:37:23.23 ID:RT2PlkdQ.net]
220
できましたどうもありがとうございます。

225 名前:デフォルトの名無しさん [2015/06/13(土) 03:16:47.88 ID:NUKk6CPY.net]
どういたしまして

226 名前:219 [2015/06/13(土) 08:02:49.41 ID:YFXshuK4.net]
たびたびすみません。
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');
では取得できません。
どういう書き方にすれば取得できるようになるのでしょうか?

227 名前:デフォルトの名無しさん [2015/06/13(土) 08:38:19.04 ID:NUKk6CPY.net]
馬鹿には無理

228 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 20:19:34.38 ID:ZKnt+LAz.net]
なんだこいつ

229 名前:デフォルトの名無しさん [2015/06/14(日) 06:25:18.68 ID:Gz1SNEoH.net]
馬鹿には(回答は)無理

230 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 06:41:51.88 ID:l6qAkUnh.net]
一部変な奴もいるけど気にせずに馬鹿はどんどん質問してくださいな

231 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 13:48:50.97 ID:6FCFdlNB.net]
もっとやさしくしてください

232 名前:デフォルトの名無しさん [2015/06/15(月) 20:34:44.01 ID:TKCLtNo1.net]
正直、DOM系の話題はなしにしたいものだ
DOMの話題ってjsの使い方一辺倒になっちまうから
GASそのものの本質を追究する姿勢が培われなくなってしまう



233 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 20:57:28.70 ID:vJyBnBQX.net]
GASはハウツー的な日本語ドキュメントが少ないから仕方ないかと
誰かその辺りをまとめてくれると(俺も)助かるんだがなー…(チラッチラッ

234 名前:デフォルトの名無しさん [2015/06/15(月) 23:47:37.55 ID:YPgI+YQd.net]
>>226
>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)

235 名前:223 [2015/06/17(水) 05:49:31.92 ID:pjaGN1aW.net]
ありがとうございます。
rdf:aboutのようなのは名前空間というみたいで
XmlService.getNamespaceを指定すると使えるようです。
詳しくはこちらに載っていました。
https://msdn.microsoft.com/ja-jp/library/aa468565.aspx

236 名前:デフォルトの名無しさん [2015/06/17(水) 14:14:39.78 ID:T4rbUCsj.net]
いやここはGASのスレだしw
XMLの基本を鼻高々に解説されても

237 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 16:12:56.82 ID:7KhQ6AFD.net]
>>236
わかればよろしい

238 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 15:54:55.56 ID:jfSOFpG/.net]
google apps script のウェブアプリケーションの公開するとき
指定したグーグルアカウントだけに利用させるって出来ないんですかい?
共有でそういうのあったんですけど、共有はコード見れるとかそういうのだったんで

239 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 17:35:30.60 ID:0T0Q+C6j.net]
スレ違いだけどできないはずはないと思うよ
appsにアカウント登録できるはず

240 名前:デフォルトの名無しさん [2015/07/01(水) 07:45:04.29 ID:WrSpGcQO.net]
>>238
1) googleアカウントでログインしてるユーザーだけに実行させることが出来る
2) アプリケーション側でどのアカウントで実行されているか把握することが出来る

1) と 2) を組み合わせれば可能

241 名前:235 mailto:sage [2015/07/01(水) 15:27:56.64 ID:s1huTgGg.net]
出来たよありがとう
"無ければ作れ"がGASでも通用したとか最高だ

242 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 15:58:11.31 ID:WrSpGcQO.net]
おめおめ



243 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 14:34:59.39 ID:PdgAmMn6.net]
GASに初トライしていて問題にブチあたりました。
解決方法があれば教えてください。


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

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

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

続きます。

244 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 14:44:48.33 ID:PdgAmMn6.net]
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 を呼び出す権限がありません
でした。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<287KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef