ข้อกำหนดเบื้องต้นสำหรับ 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. เปิด Webmaster Central
  2. คลิกพร็อพเพอร์ตี้ที่คุณยืนยันการเป็นเจ้าของ
  3. ในรายการเจ้าของที่ผ่านการยืนยัน ให้คลิกเพิ่มเจ้าของ
  4. ระบุอีเมลบัญชีบริการเป็นเจ้าของที่ได้รับมอบอำนาจ คุณดูอีเมลบัญชีบริการได้จาก 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 คำขอจะต้องมีคุณสมบัติดังนี้

  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