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

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

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

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

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

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

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

คุณต้องทำตามขั้นตอนต่อไปนี้เฉพาะในกรณีที่ต้องการให้สิทธิ์เข้าถึงทั่วทั้งโดเมน G Suite แก่บัญชีบริการ

  1. หาบัญชีบริการที่สร้างใหม่ในตาราง ในส่วนการดำเนินการ ให้คลิก more_vert จากนั้นคลิกแก้ไข
  2. ในรายละเอียดบัญชีบริการ ให้คลิก expand_more แสดงการมอบสิทธิ์ทั่วทั้งโดเมน จากนั้นตรวจดูว่าได้เลือกช่องทำเครื่องหมายเปิดใช้การมอบสิทธิ์ทั่วทั้งโดเมน G Suite แล้ว
  3. หากยังไม่ได้กำหนดค่าหน้าจอคำยินยอม OAuth ของแอป คุณต้องทำก่อนที่จะเปิดใช้การมอบสิทธิ์ทั่วทั้งโดเมน ทำตามวิธีการในหน้าจอเพื่อกำหนดค่าหน้าจอคำยินยอม OAuth จากนั้นทำตามขั้นตอนข้างต้นซ้ำและเลือกช่องทำเครื่องหมายดังกล่าวอีกครั้ง
  4. คลิกบันทึกเพื่ออัปเดตบัญชีบริการและกลับไปที่ตารางบัญชีบริการ คุณจะเห็นคอลัมน์ใหม่ชื่อการมอบสิทธิ์ทั่วทั้งโดเมน คลิกดูรหัสลูกค้าเพื่อดูรหัสลูกค้าและจดบันทึกไว้

ยืนยันการเป็นเจ้าของเว็บไซต์ใน Search Console

ในขั้นตอนนี้ คุณจะยืนยันว่าคุณมีสิทธิ์ควบคุมเว็บพร็อพเพอร์ตี้

วิธียืนยันการเป็นเจ้าของเว็บไซต์

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