ข้อกำหนดเบื้องต้นสำหรับ Indexing API

ก่อนที่จะเริ่มใช้ Indexing API ได้ คุณต้องดำเนินการบางอย่างดังต่อไปนี้หากยังไม่ได้ทำ

สร้างโปรเจ็กต์สำหรับไคลเอ็นต์

ก่อนที่จะส่งคำขอไปยัง Indexing API ได้ คุณต้องแจ้งให้ Google ทราบเกี่ยวกับไคลเอ็นต์และเปิดใช้งานการเข้าถึง API ดังกล่าว ซึ่งทำได้โดยใช้คอนโซล Google API เพื่อสร้างโครงการ หรือคอลเล็กชันการตั้งค่าที่มีชื่อและข้อมูลการเข้าถึง API ตลอดจนลงทะเบียนแอปพลิเคชันของคุณ

ในการเริ่มต้นใช้งาน Indexing API ก่อนอื่นคุณต้องใช้เครื่องมือการตั้งค่า ซึ่งจะนำทางคุณในการสร้างโปรเจ็กต์ในคอนโซล Google API เปิดใช้ API ดังกล่าวและสร้างข้อมูลเข้าสู่ระบบ

สร้างบัญชีบริการ

  1. เปิดหน้าบัญชีบริการ เมื่อได้รับข้อความเตือน ให้เลือกโปรเจ็กต์
  2. คลิกสร้างบัญชีบริการ จากนั้นป้อนชื่อและคำอธิบายของบัญชีบริการ คุณจะใช้รหัสเริ่มต้นของบัญชีบริการหรือเลือกรหัสอื่นที่ไม่ซ้ำกันก็ได้ เมื่อเสร็จแล้วให้คลิกสร้าง
  3. คุณข้ามส่วนสิทธิ์ของบัญชีบริการ (ไม่บังคับ) ที่ตามมาได้ คลิกต่อไป
  4. ในหน้าจอให้สิทธิ์ผู้ใช้เข้าถึงบัญชีบริการนี้ ให้เลื่อนลงไปที่ส่วนสร้างคีย์ คลิก สร้างคีย์
  5. เลือกรูปแบบของคีย์ในแผงด้านข้างที่ปรากฏขึ้น ขอแนะนำให้เลือก JSON
  6. คลิกสร้าง ระบบจะสร้างคู่คีย์สาธารณะ/ส่วนตัวใหม่และดาวน์โหลดลงในเครื่องของคุณ ซึ่งจะเป็นสำเนาเพียงรายการเดียวของคีย์นี้ ดูข้อมูลเกี่ยวกับวิธีจัดเก็บคีย์อย่างปลอดภัยที่การจัดการคีย์ของบัญชีบริการ
  7. คลิกปิดในกล่องโต้ตอบคีย์ส่วนตัวที่บันทึกไว้ในคอมพิวเตอร์ จากนั้นคลิกเสร็จเพื่อกลับไปที่ตารางของบัญชีบริการ

เพิ่มบัญชีบริการเป็นเจ้าของเว็บไซต์

วิธีเพิ่มบัญชีบริการเป็นเจ้าของเว็บไซต์

  1. ก่อนอื่นให้พิสูจน์ว่าคุณเป็นเจ้าของเว็บไซต์โดยใช้ Search Console จากนั้น
  2. เพิ่มบัญชีบริการในฐานะเจ้าของ

1. พิสูจน์ว่าคุณเป็นเจ้าของเว็บไซต์

ยืนยันการเป็นเจ้าของเว็บไซต์โดยใช้ Search Console คุณใช้วิธีการยืนยันใดก็ได้ที่ Search Console รองรับ คุณสามารถสร้างได้ทั้งพร็อพเพอร์ตี้โดเมน (example.com) หรือพร็อพเพอร์ตี้ที่มีคำนำหน้า URL (https://example.com หรือ https://example.com/some/path/) เพื่อใช้แสดงเว็บไซต์ (โปรดทราบว่าเว็บไซต์เรียกว่าพร็อพเพอร์ตี้ใน Search Console)

2. ให้สถานะเจ้าของแก่บัญชีบริการ

ถัดไป ให้เพิ่มบัญชีบริการเป็นเจ้าของเว็บไซต์ (ที่ได้รับมอบอำนาจ) ดังนี้

  1. เปิด Search Console
  2. คลิกพร็อพเพอร์ตี้ที่คุณยืนยันการเป็นเจ้าของ
  3. ในรายการเจ้าของที่ผ่านการยืนยัน ให้คลิกเพิ่มเจ้าของ
  4. ระบุอีเมลบัญชีบริการเป็นเจ้าของที่ได้รับมอบอำนาจ คุณดูอีเมลบัญชีบริการได้จาก 2 ที่ต่อไปนี้
    • ช่อง client_email ในคีย์ส่วนตัวแบบ JSON ที่คุณดาวน์โหลดมาตอนสร้างโปรเจ็กต์
    • คอลัมน์รหัสบัญชีบริการของมุมมองบัญชีบริการในคอนโซล Google Cloud
    อีเมลจะมีรูปแบบดังนี้
    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 คำขอจะต้องมีคุณสมบัติดังนี้

  1. ใช้งาน https://www.googleapis.com/auth/indexing เป็นขอบเขต
  2. ใช้ปลายทางแห่งใดแห่งหนึ่งที่ระบุไว้ในการใช้ API
  3. ใส่โทเค็นเพื่อการเข้าถึงบัญชีบริการ
  4. ระบุส่วนเนื้อหาของคำขอตามที่อธิบายไว้ในการใช้ 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