Google PHP API の使用に関するドキュメントをあちこち探していましたが、これは私が手に入れた限り近いものです。「sql」関数には、Google API コード内に重要な「__call('sql'....)」という行がありますが、これにより 500 サーバー エラーが発生します。私が間違っているかもしれない場所で誰かが私に手を差し伸べることができますか? 私はもともと「401無許可」を返すJavascriptを介してUPDATE関数を呼び出すつもりでしたが、サービスアカウントに対してoauthを機能させようとすると大きな問題が発生しました。基本的に、Web サイトの CMS ユーザーが自分のテーブルの特定の ROWID の列の値を更新できるようにしようとしており、個人データ/テーブルなどにアクセスする必要はありません。
前もって感謝します!
require_once 'google-api-php-client-read-only/src/Google_Client.php';
require_once 'google-api-php-client-read-only/src/contrib/Google_FusiontablesService.php';
ini_set("DISPLAY_ERRORS",1);
error_reporting(E_ALL);
// Set your client id, service account name, and the path to your private key.
// For more information about obtaining these keys, visit:
// https://developers.google.com/console/help/#service_accounts
$CLIENT_ID = '278066061539-e80g63vcqkaj28frfn6g32vbll38onsn.apps.googleusercontent.com';
$SERVICE_ACCOUNT_NAME = '278066061539-e80g63vcqkaj28frfn6g32vbll38onsn@developer.gserviceaccount.com';
// Make sure you keep your key.p12 file in a secure location, and isn't
// readable by others.
$KEY_FILE = 'scriptonly/2655a395f392632a75bcdc139c47aa70d20d71f1-privatekey.p12';
$client = new Google_Client();
$client->setApplicationName("SIE Stop Smoking Services");
// Set your cached access token. Remember to replace $_SESSION with a
// real database or memcached.
session_start();
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
// Load the key in PKCS 12 format (you need to download this from the
// Google API Console when the service account was created.
$key = file_get_contents($KEY_FILE);
$client->setAssertionCredentials(new Google_AssertionCredentials(
$SERVICE_ACCOUNT_NAME,
array('https://www.googleapis.com/auth/fusiontables'),
$key)
);
$client->setClientId($CLIENT_ID);
$client->getAccessToken();
$service = new Google_FusiontablesService($client);
$service->query->sql("UPDATE 1z3anmPv-gPfB-MQGy_qCGWabBJVCk1BCoda0qXs SET SSS_Quality='1' WHERE ROWID='4'");