นี่คือ API ที่ตรงกับเวอร์ชัน 4 ของ Sheets API ของ Google ส่วนใหญ่ ดังนั้นหากคุณต้องการเอกสารเกี่ยวกับวิธีการใช้ API นี้คุณต้องปรึกษา API แทนและใช้การผูก C# นอกจากนี้ยังมีเลเยอร์ระดับสูงที่เล็กกว่าอยู่ด้านบนซึ่งมีประโยชน์สำหรับผู้ที่ต้องการเข้าถึงข้อมูลจากอาร์เรย์ 2D
มีแผ่นนามธรรม Sheetsserializer อยู่เพื่อให้คุณสามารถใช้ Serializer JSON ใด ๆ ที่คุณต้องการ
using UnityEngine ;
public class JSONSerializer : SheetsSerializer
{
public override T DeserializeObject < T > ( string data )
{
return JsonUtility . FromJson < T > ( data ) ;
}
public override string SerializeObject ( object data )
{
return JsonUtility . ToJson ( data ) ;
}
} using Newtonsoft . Json ;
public class JSONSerializer : SheetsSerializer
{
public override T DeserializeObject < T > ( string data )
{
return JsonConvert . DeserializeObject < T > ( data ) ;
}
public override string SerializeObject ( object data )
{
return JsonConvert . SerializeObject ( data ) ;
}
} ข้อกำหนดในการใช้ Google Sheets API คือการมีสเปรดชีตและโทเค็นการเข้าถึง สเปรดชีตสามารถดึงได้จาก URL คุณจะต้องจัดหา SheetsSerializer.Serializer Property ด้วยวัตถุ Serializer ของคุณเอง
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}
โทเค็น API สามารถสร้างได้จาก Google API Console สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้เยี่ยมชมบทความนี้โดย Google
public async void Start ( )
{
SheetsSerializer . Serializer = new SheetsSerializer ( ) ; //TODO: Create your own custom serializer/deserializer
string spreadsheetId = "" ; //TODO: Get your own spreadsheetId
string key = "" ; //TODO: Get your own key token
Authorization authorization = await Authorization . Authorize ( key ) ;
Spreadsheet spreadsheet = await Spreadsheet . Get ( spreadsheetId , authorization ) ;
Debug . Log ( "URL: " + spreadsheet . URL ) ;
Debug . Log ( "Title: " + spreadsheet . Title ) ;
Sheet sheet = spreadsheet . Sheets [ 0 ] ;
Debug . Log ( "Rows: " + sheet . Rows ) ;
Debug . Log ( "Columns: " + sheet . Columns ) ;
Cell [ , ] data = sheet . Data ;
for ( int x = 0 ; x < sheet . Columns ; x ++ )
{
for ( int y = 0 ; y < sheet . Rows ; y ++ )
{
Debug . Log ( data [ x , y ] . Value ) ;
}
}
} หากคุณต้องการใช้ API ระดับต่ำคุณสามารถใช้วิธี GetRaw() แทน Get() ทางเลือกวิธีการดิบจะให้วัตถุ SpreadsheetRaw ซึ่งเหมือนกับการอ้างอิง Google API
หากคุณต้องการทำงานกับทั้งระดับต่ำและระดับสูงคุณสามารถสร้างสเปรดชีตจากสเปรดชีตระดับต่ำโดยส่งผ่านไปยังตัวสร้าง สามารถทำได้เช่นเดียวกันสำหรับการแปลงแผ่นดิบเป็นแผ่นระดับสูง สิ่งนี้ไม่สามารถทำได้ในทางอื่น ๆ และโดยการออกแบบ
SheetsSerializer . Serializer = new SheetsSerializer ( ) ;
string key = "" ; //TODO: Get a key
Authorization authorization = await Authorization . Authorize ( key ) ;
SpreadsheetRaw raw = await SpreadsheetRaw . Get ( spreadsheetId , token , includeGridData ) ;
Spreadsheet spreadsheet = await Spreadsheet . Get ( spreadsheetId , token , serializer ) ;
//create a new spreadsheet from the raw data
Spreadsheet spreadsheetConverted = new Spreadsheet ( raw ) ; มีการใช้สองวิธีในการอนุญาต การใช้รหัสไคลเอนต์ OAUTH และความลับของไคลเอนต์หรือใช้คีย์ที่ให้มาจากคอนโซลของ Google Developer
string key = "" ;
Authorizer authorizer = await Authorizer . Authorizer ( key ) ; string clientId = "" ;
string clientSecret = "" ;
Authorizer authorizer = await Authorizer . Authorize ( clientId , clientSecret ) ;หมายเหตุ: การแก้ไขการโทรต้องได้รับอนุญาต OAuth
new SheetSerializer() ได้? เพราะมันเป็นคลาสที่เป็นนามธรรมและคุณต้องดำเนินการตามคลาสนี้ของคุณเอง