[英]Update DeveloperMetadata of google sheet using google sheet api
我正在為 PHP 使用 Google API 客戶端庫。 我可以創建和訪問電子表格的 DeveloperMetadata。 但無法更新 DeveloperMetadata。 請參閱下面的代碼以獲得更好的理解。
<?php
class GoogleSheetHelper {
function update_dev_meta() {
$dev_meta = new DeveloperMetadata();
$dev_meta->setVisibility( 'DOCUMENT' );
$dev_meta->setMetadataKey( 'new_meta_key' );
$dev_meta->setMetadataValue( 'new_meta_value_updated' );
$update_req = new UpdateDeveloperMetadataRequest();
$update_req->setDeveloperMetadata( $dev_meta );
$update_req->setFields( '*' );
$request = new Request();
$request->setUpdateDeveloperMetadata( $update_req );
$batch_update = new BatchUpdateSpreadsheetRequest();
$batch_update->setRequests( [ $request ] );
$client = $this->get_client();
$service = new Sheets( $client );
try {
return $service->spreadsheets->batchUpdate( $spreadsheet_id, $batch_update );
} catch ( Exception $ex ) {
var_dump( $ex->getErrors() );
return false;
}
}
private function get_client( $scopes = [] ) {
$credential = 'location/of/credential.json';
if ( empty( $credential ) ) {
return null;
}
$default_scopes = [
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/spreadsheets',
];
return new Client(
[
'credentials' => $credential,
'scopes' => $default_scopes,
]
);
}
}
如有任何疑問,請隨時通知我。 對不起,我的英語水平很差。
檢查您的代碼和文檔,您似乎缺少指定Data Filter
和DeveloperMetadata Object
包括聲明要更新的字段的字段掩碼。 請查看有關如何更新開發人員元數據的文檔,以證實您的操作是否正確。
這是顯示更新開發人員元數據的示例,它與您當前擁有的相差不遠:
{
"requests": [
{
"updateDeveloperMetadata": {
"dataFilters": [
{
"developerMetadataLookup": {
"metadataId": metadataId
}
}
],
"developerMetadata": {
"location": {
"sheetId": sheetId
},
"metadataKey": "SalesUpdated"
},
"fields": "location,metadataKey"
}
}
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.