ข้อกำหนดเบื้องต้นสำหรับ Indexing API
ก่อนที่จะเริ่มใช้ Indexing API ได้ คุณต้องดำเนินการบางอย่างดังต่อไปนี้หากยังไม่ได้ทำ
- สร้างโปรเจ็กต์สำหรับไคลเอ็นต์
- สร้างบัญชีบริการ
- เพิ่มบัญชีบริการเป็นเจ้าของเว็บไซต์
- รับโทเค็นเพื่อการเข้าถึง
สร้างโปรเจ็กต์สำหรับไคลเอ็นต์
ก่อนที่จะส่งคำขอไปยัง Indexing API ได้ คุณต้องแจ้งให้ Google ทราบเกี่ยวกับไคลเอ็นต์และเปิดใช้งานการเข้าถึง API ดังกล่าว ซึ่งทำได้โดยใช้คอนโซล Google API เพื่อสร้างโครงการ หรือคอลเล็กชันการตั้งค่าที่มีชื่อและข้อมูลการเข้าถึง API ตลอดจนลงทะเบียนแอปพลิเคชันของคุณ
ในการเริ่มต้นใช้งาน Indexing API ก่อนอื่นคุณต้องใช้เครื่องมือการตั้งค่า ซึ่งจะนำทางคุณในการสร้างโปรเจ็กต์ในคอนโซล Google API เปิดใช้ API ดังกล่าวและสร้างข้อมูลเข้าสู่ระบบ
สร้างบัญชีบริการ
- เปิดหน้าบัญชีบริการ เมื่อได้รับข้อความเตือน ให้เลือกโปรเจ็กต์
- คลิก สร้างบัญชีบริการ จากนั้นป้อนชื่อและคำอธิบายของบัญชีบริการ คุณจะใช้รหัสเริ่มต้นของบัญชีบริการ หรือเลือกรหัสอื่นที่ไม่ซ้ำกันก็ได้ เมื่อเสร็จแล้วให้คลิกสร้าง
- คุณข้ามส่วนสิทธิ์ของบัญชีบริการ (ไม่บังคับ) ที่ตามมาได้ คลิกต่อไป
- ในหน้าจอให้สิทธิ์ผู้ใช้เข้าถึงบัญชีบริการนี้ ให้เลื่อนลงไปที่ส่วนสร้างคีย์ คลิก สร้างคีย์
- เลือกรูปแบบของคีย์ในแผงด้านข้างที่ปรากฏขึ้น ขอแนะนำให้เลือก JSON
- คลิกสร้าง ระบบจะสร้างคู่คีย์สาธารณะ/ส่วนตัวใหม่และดาวน์โหลดลงในเครื่องของคุณ ซึ่งจะเป็นสำเนาเพียงรายการเดียวของคีย์นี้ ดูข้อมูลเกี่ยวกับวิธีจัดเก็บคีย์อย่างปลอดภัยที่การจัดการคีย์ของบัญชีบริการ
- คลิกปิดในกล่องโต้ตอบคีย์ส่วนตัวที่บันทึกไว้ในคอมพิวเตอร์ จากนั้นคลิกเสร็จเพื่อกลับไปที่ตารางของบัญชีบริการ
เพิ่มบัญชีบริการเป็นเจ้าของเว็บไซต์
วิธีเพิ่มบัญชีบริการเป็นเจ้าของเว็บไซต์
- ก่อนอื่นให้พิสูจน์ว่าคุณเป็นเจ้าของเว็บไซต์โดยใช้ Search Console จากนั้น
- เพิ่มบัญชีบริการในฐานะเจ้าของ
1. พิสูจน์ว่าคุณเป็นเจ้าของเว็บไซต์
ยืนยันการเป็นเจ้าของเว็บไซต์โดยใช้ Search Console
คุณใช้วิธีการยืนยันใดก็ได้ที่ Search Console รองรับ คุณสามารถสร้างได้ทั้งพร็อพเพอร์ตี้โดเมน (example.com
) หรือพร็อพเพอร์ตี้ที่มีคำนำหน้า URL (https://example.com
หรือ https://example.com/some/path/
) เพื่อใช้แสดงเว็บไซต์ของคุณ
(โปรดทราบว่าเราเรียกเว็บไซต์ว่าพร็อพเพอร์ตี้ใน Search Console)
2. ให้สถานะเจ้าของแก่บัญชีบริการ
ถัดไป ให้เพิ่มบัญชีบริการเป็นเจ้าของเว็บไซต์ (ที่ได้รับมอบอำนาจ) ดังนี้
- เปิด Webmaster Central
- คลิกพร็อพเพอร์ตี้ที่คุณยืนยันการเป็นเจ้าของ
- ในรายการเจ้าของที่ผ่านการยืนยัน ให้คลิกเพิ่มเจ้าของ
- ระบุอีเมลบัญชีบริการเป็นเจ้าของที่ได้รับมอบอำนาจ คุณดูอีเมลบัญชีบริการได้จาก 2 ที่ต่อไปนี้
- ช่อง
client_email
ในคีย์ส่วนตัวแบบ JSON ที่คุณดาวน์โหลดมาตอนสร้างโปรเจ็กต์ - คอลัมน์รหัสบัญชีบริการของมุมมองบัญชีบริการใน Developers Console
my-service-account@project-name.google.com.iam.gserviceaccount.com
เช่น: my-service-account@test-project-42.google.com.iam.gserviceaccount.com - ช่อง
รับโทเค็นเพื่อการเข้าถึง
การเรียก Indexing API ทุกครั้งจะต้องมีการตรวจสอบสิทธิ์ด้วยโทเค็น OAuth ที่คุณได้รับจากการแลกเปลี่ยนคีย์ความปลอดภัย โทเค็นแต่ละรายการสามารถใช้ได้เป็นระยะเวลาหนึ่ง Google มีไลบรารีของไคลเอ็นต์ API ให้เพื่อรับโทเค็น OAuth สำหรับหลายภาษา
ข้อกำหนด
เวลาส่งคำขอไปยัง Indexing API คำขอจะต้องมีคุณสมบัติดังนี้
- ใช้งาน
https://www.googleapis.com/auth/indexing
เป็นขอบเขต - ใช้ปลายทางแห่งใดแห่งหนึ่งที่ระบุไว้ในการใช้ API
- ใส่โทเค็นเพื่อการเข้าถึงบัญชีบริการ
- ระบุส่วนเนื้อหาของคำขอตามที่อธิบายไว้ในการใช้ API
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงวิธีรับโทเค็นเพื่อการเข้าถึง OAuth
Python
รับโทเค็น OAuth โดยใช้ไลบรารีของไคลเอ็นต์ Google API สำหรับ Python
from oauth2client.service_account import ServiceAccountCredentials import httplib2 SCOPES = [ "https://www.googleapis.com/auth/indexing" ] ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish" # service_account_file.json is the private key that you created for your service account. JSON_KEY_FILE = "service_account_file.json" credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES) http = credentials.authorize(httplib2.Http()) # Define contents here as a JSON string. # This example shows a simple update request. # Other types of requests are described in the next step. content = """{ \"url\": \"http://example.com/jobs/42\", \"type\": \"URL_UPDATED\" }""" response, content = http.request(ENDPOINT, method="POST", body=content)
Java
รับโทเค็น OAuth โดยใช้ไลบรารีของไคลเอ็นต์ API สำหรับ Java
String scopes = "https://www.googleapis.com/auth/indexing"; String endPoint = "https://indexing.googleapis.com/v3/urlNotifications:publish"; JsonFactory jsonFactory = new JacksonFactory(); // service_account_file.json is the private key that you created for your service account. InputStream in = IOUtils.toInputStream("service_account_file.json"); GoogleCredential credentials = GoogleCredential.fromStream(in, this.httpTransport, jsonFactory).createScoped(Collections.singleton(scopes)); GenericUrl genericUrl = new GenericUrl(endPoint); HttpRequestFactory requestFactory = this.httpTransport.createRequestFactory(); // Define content here. The structure of the content is described in the next step. String content = "{" + "\"url\": \"http://example.com/jobs/42\"," + "\"type\": \"URL_UPDATED\"," + "}"; HttpRequest request = requestFactory.buildPostRequest(genericUrl, ByteArrayContent.fromString("application/json", content)); credentials.initialize(request); HttpResponse response = request.execute(); int statusCode = response.getStatusCode();
PHP
รับโทเค็น OAuth โดยใช้ไลบรารีของไคลเอ็นต์ API สำหรับ PHP
require_once 'google-api-php-client/vendor/autoload.php'; $client = new Google_Client(); // service_account_file.json is the private key that you created for your service account. $client->setAuthConfig('service_account_file.json'); $client->addScope('https://www.googleapis.com/auth/indexing'); // Get a Guzzle HTTP Client $httpClient = $client->authorize(); $endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish'; // Define contents here. The structure of the content is described in the next step. $content = '{ "url": "http://example.com/jobs/42", "type": "URL_UPDATED" }'; $response = $httpClient->post($endpoint, [ 'body' => $content ]); $status_code = $response->getStatusCode();
Node.js
รับโทเค็น OAuth โดยใช้ไลบรารีของไคลเอ็นต์สำหรับ Node.js
var request = require("request"); var { google } = require("googleapis"); var key = require("./service_account.json"); const jwtClient = new google.auth.JWT( key.client_email, null, key.private_key, ["https://www.googleapis.com/auth/indexing"], null ); jwtClient.authorize(function(err, tokens) { if (err) { console.log(err); return; } let options = { url: "https://indexing.googleapis.com/v3/urlNotifications:publish", method: "POST", // Your options, which must include the Content-Type and auth headers headers: { "Content-Type": "application/json" }, auth: { "bearer": tokens.access_token }, // Define contents here. The structure of the content is described in the next step. json: { "url": "http://example.com/jobs/42", "type": "URL_UPDATED" } }; request(options, function (error, response, body) { // Handle the response console.log(body); }); });
นอกจากจะแสดงวิธีรับโทเค็น ตัวอย่างเหล่านี้ยังแสดงตำแหน่งที่คุณจะเพิ่มเนื้อหาของข้อความคำขอได้ด้วย สำหรับข้อมูลเกี่ยวกับประเภทการเรียกที่คุณใช้ได้และโครงสร้างของเนื้อหาข้อความสำหรับการเรียกเหล่านั้น โปรดดูการใช้ API