6

これを行う方法に関するスクリプトまたはチュートリアルはありますか? PHP アプリケーションから Google スプレッドシートへのデータの挿入を実装するにはどうすればよいですか?

API ( https://developers.google.com/google-apps/spreadsheets/ ) を見てきましたが、PHP コード/例はありません。

Zend Library の実装を試してみましたが、単純な行の挿入でばかげたエラーが発生するため、そのアプローチでは何かが非常に古くなっているようです。

PHPスクリプトからコーディングしてトリガーする方法がわからないため、Google Appsスクリプト( https://developers.google.com/apps-script/reference/spreadsheet/ )を使用できないと思います。

他に何か?

これには、簡単に使用して利用できる実行可能な API はありませんか?

4

1 に答える 1

14

PHP スクリプトからコーディングしてトリガーする方法がわからないため、Google Apps Script を使用できないと思います

できますよ。サービス リクエストを受信して​​処理できる Google Apps Script を使用して Web サービスを作成できます。パラメーターを Web サービスに渡すのは簡単です。これは、たとえば cURL を使用して行うことができます。

次の例は、2 つの列を持つ単純なスプレッドシートです。次の方法でさらに行を追加できます。

curl -L <SCRIPT URL>?col1='Value for column 1'&col2='Another value'

またはブラウザの URL:

https://<SCRIPT URL>?col1='Value for column 1'&col2='Another value'

このサンプル スプレッドシートはこちらで公開されています。行を追加するために使用できる URL の例を以下に示します。

https://script.google.com/macros/s/AKfycbzVDFmOeaQc4mDZhWCnwf0CUnX64YNhhnKIlTYhqtpBraINUf9e/exec?col1='Value for column 1'&col2='Another value'

指示

これがステップバイステップです。

  1. Google スプレッドシートを開き、スプレッドシートが完全にアクセス可能 (公開) であることを確認します
  2. ツール --> スクリプト エディタ
  3. 以下のコードをコピーしてエディターに貼り付けます
  4. をシートの ID に置き換え--spreadsheet-id--ます (これは簡単に見つけることができます)
  5. ファイル --> 保存
  6. 公開 --> Web アプリとして展開 --> バージョン = NEW ; 必要に応じてアクセスを設定する
  7. 承認 (クレデンシャルの入力を求められます) --> DEPLOY
  8. これで、スクリプトへの URL が取得されます
  9. URL に追加?col1='Colum1Data'&col2='Colum2Data'するか、必要に応じて編集して、URL からスプレッドシートにデータをプッシュします
  10. 終わり

(vr00nさん、ありがとうございます。)

Code.gs

これは、スタンドアロンまたはコンテナーにバインドされたスクリプトの可能性があります。Web アプリはスプレッドシート コンテキスト内で実行されないため、どちらの方法でも、スプレッドシートの ID を指定する必要があります。HTML を表示するのではなく、ContentService を使用して単純なテキストを提供します。アプリケーションに適した方法で詳しく説明できます。

function doGet(e) {  
  Logger.log( JSON.stringify(e) );  // view parameters

  var result = 'Ok'; // assume success

  if (e.parameter == undefined) {
    result = 'No Parameters';
  }
  else {
    var id = '--spreadsheet-id--'; // Spreadsheet id
    var sheet = SpreadsheetApp.openById(id).getActiveSheet();
    var newRow = sheet.getLastRow() + 1;
    var rowData = [];
    for (var param in e.parameter) {
      Logger.log('In for loop, param='+param);
      var value = stripQuotes(e.parameter[param]);
      //Logger.log(param + ':' + e.parameter[param]);
      switch (param) {
        case 'col1': 
          rowData[0] = value;
          break;
        case 'col2':
          rowData[1] = value;
          break;
        default:
          result = "unsupported parameter";
      }
    }
    Logger.log(JSON.stringify(rowData));

    // Write new row to spreadsheet
    var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
    newRange.setValues([rowData]);
  }

  // Return result of operation
  return ContentService.createTextOutput(result);
}

/**
 * Remove leading and trailing single or double quotes
 */
function stripQuotes( value ) {
  return value.replace(/^["']|['"]$/g, "");
}

Google のコンテンツ サービスのドキュメント、特にリダイレクトに関する注意事項と機密情報をよくお読みください。

于 2013-07-26T01:17:53.233 に答える