1

アプリ スクリプトの外部 API の「例」を次に示します。

https://developers.google.com/apps-script/external_apis

しかし、コードをカット アンド ペーストすると、次のようになります。

var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
var response = UrlFetchApp.fetch(url);

Code.gs に

function myFunction() {

 var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
var response = UrlFetchApp.fetch(url);

}

(プロジェクトを管理した後)「Webアプリとして公開する」を押します。何も起こりません。

上記のスニペットだけでなく、実用的な例はありますか? つまり、YouTube などへのクエリを「表示」するための応答 var をどうするかということです。この URL フェッチの例は、多数のチュートリアルの例を理解するために必要であると言われていますが、それ自体は実際には何も達成しません。

ありがとう

以下の回答への回答にここで回答します。

Browser.msgBox(response); を試しました。これにより、「不明なマクロ doGet」が表示されます。</p>

Logger.log(response); を試しました。これにより、「不明なマクロ doGet」が表示されます。</p>

function myFunction() {
    var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
var response = UrlFetchApp.fetch(url);

//Browser.msgBox(response);

// Logger.log(response);

}

あなたは「それは開発者としてのあなた次第だ」と言いますが、「開発者として」何をすべきかわかりません</p>

はい、ここで何かが欠けていることは明らかです。それが問題です。例から知っておくべきだと思われる基本的なことが欠けていますが、私はそれを知りません。

チュートリアルでは Listbox について紹介されませんでした。

/apps-script で検索に「listbox」と入力すると、次の例が表示されます。

https://developers.google.com/apps-script/class_listbox

これをスプレッドシートに入れ、それを実行して選択項目を取得できます。では、なぜこれが msgbox や logger で得られるものと異なるのでしょうか? これらはどちらも「不明なマクロ doGet」を取得します</p>

ここで迷子になってください。他のチュートリアルに進む前にこれを理解する必要がありますが、何かが欠けています。

OK、「応答」を表示する方法を見つけましたが、「Web アプリとしてデプロイ」を使用していません (これが必要だと思いますが、わかりません。

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();

// これらは 2 つのメニュー エントリです var menuEntries = [ {name: "Surprise 1", functionName: "menuItem1"}, {name: "Surprise 2", functionName: "menuItem2"}, {name: "Surprise 3", functionName: "menuItem3"} ];

//驚き3は別のスクリプトにあります

// メニュー エントリを定義したら、メニュー自体を定義します。 ss.addMenu("Surprises", menuEntries); }

function menuItem1() {
   var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
  var response = UrlFetchApp.fetch(url);
  Browser.msgBox(response);
}

function menuItem2() {
  var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
  Browser.msgBox(url);
}

しかし、これは menu1 のボックスに "FetchReponse" を出力するだけです。そう?

これをブラウザに取り込むにはどうすればよいですか?「Web にデプロイ」の選択に何か問題があるはずですよね?

4

3 に答える 3

1

スクリプトは意図したタスクを実行します。

Google アプリのスクリプト UI にはデバッガ機能があります。これを使用して、サンプル スニペットをステップスルーしてみてください。変数が定義されたら、その値を見てください。これは、何が起こっているのかを理解するのに役立ちます。この例自体が (そのままで) 応答データに対して何もしないのは事実ですが、それは開発者の責任です。変数 'responce' の値を使用して、リストボックスを埋めることができます。しかし、それを行うコードは提供されていません。それはあなた次第です;-) まだそのコードを書くことができない場合は、Srik のアドバイスに同意し、チュートリアルを見てください。

最後に、このリンクは、例で使用されている API に関するさらなる質問に役立ちます。 https://developers.google.com/youtube/2.0/developers_guide_protocol#Standard_parameters

お役に立てれば。

于 2012-09-14T21:16:32.847 に答える
0

さらに投稿する前に、 https://developers.google.com/apps-script/execution_web_appsをお読みください。

具体的には、「スクリプトをWebアプリとしてデプロイするには、doGet(e)関数が含まれている必要があります。」という文です。

次に、ユーザーインターフェースの構築方法を決定します:https ://developers.google.com/apps-script/html_serviceまたはhttps://developers.google.com/apps-script/uiapp

于 2012-09-18T17:34:42.517 に答える
0

関数にカット アンド ペーストしても、不明なマクロ doGet が返されます。

function myFunction() {
     var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
  var response = UrlFetchApp.fetch(url);
  Browser.msgBox(response);
}

管理対象バージョンとして保存します。次に「Web アプリとしてデプロイ」。リンクと最新バージョンをカットアンドペーストすると、両方とも「不明なマクロ doGet」が表示されます

于 2012-09-18T16:56:00.177 に答える