इंडेक्सिंग एपीआई के लिए ज़रूरी शर्तें

इंडेक्सिंग एपीआई का इस्तेमाल करने से पहले, कुछ ऐसी चीज़ें हैं जिन्हें करना ज़रूरी है. खास तौर पर जब आपने उन्हें पहले से नहीं किया है:

अपने क्लाइंट के लिए प्रोजेक्ट बनाना

इंडेक्सिंग एपीआई को अनुरोध भेजने के लिए यह ज़रूरी है कि आप पहले Google को अपने क्लाइंट के बारे में बताएं. साथ ही, एपीआई इस्तेमाल करने की सुविधा चालू करें. ऐसा Google API (एपीआई) कंसोल से प्रोजेक्ट बनाने के लिए किया जाता है. यह सेटिंग और एपीआई के इस्तेमाल की जानकारी वाले ग्रुप का एक नाम है. साथ ही, अपना ऐप्लिकेशन रजिस्टर करें.

इंडेक्सिंग एपीआई का इस्तेमाल शुरू करने से पहले सेट अप टूल इस्तेमाल करना ज़रूरी है. इससे आपको Google API (एपीआई) कंसोल में प्रोजेक्ट बनाने, एपीआई की सुविधा चालू करने, और क्रेडेंशियल बनाने की जानकारी मिलती है.

सेवा खाता बनाना

  1. सेवा खाते का पेज खोलें. पूछे जाने पर, प्रोजेक्ट चुनें.
  2. सेवा खाता बनाएं पर क्लिक करें, सेवा खाते का नाम और जानकारी डालें. आप डिफ़ॉल्ट सेवा खाता आईडी इस्तेमाल करें या फिर कोई दूसरा, अलग खाता आईडी चुनें. काम पूरा हो जाने पर, बनाएं पर क्लिक करें.
  3. इसके बाद आने वाले सेवा खाते की अनुमतियां (ज़रूरी नहीं) सेक्शन की ज़रूरत नहीं है. जारी रखें पर क्लिक करें.
  4. उपयोगकर्ताओं को इस खाते का ऐक्सेस दें स्क्रीन पर, नीचे कुंजी बनाएं सेक्शन तक स्क्रोल करें. कुंजी बनाएं पर क्लिक करें.
  5. इसके बाद, जो साइड पैनल दिखेगा उसमें अपनी कुंजी का फ़ॉर्मैट चुनें: JSON का सुझाव दिया जाता है.
  6. बनाएं पर क्लिक करें. आपकी नई सार्वजनिक/निजी कुंजी की जोड़ी जनरेट करके आपकी मशीन पर डाउनलोड की जाती है. यह इस कुंजी की अकेली कॉपी की तरह काम करती है. इसे सुरक्षित तौर पर कैसे सेव किया जाए, इसकी जानकारी के लिए, सेवा खाता कुंजियां मैनेज करें देखें.
  7. आपके कंप्यूटर पर सेव की गई निजी कुंजी डायलॉग पर, बंद करें पर क्लिक करें. इसके बाद, अपने सेवा खातों की टेबल पर वापस लौटने के लिए, हो गया पर क्लिक करें.

साइट के मालिक के तौर पर अपना सेवा खाता जोड़ना

अपने सेवा खाते को साइट के मालिक के तौर पर जोड़ने के लिए:

  1. सबसे पहले, Search Console का इस्तेमाल करके साबित करें कि आप साइट के मालिक हैं.
  2. इसके बाद, मालिक के तौर पर अपना सेवा खाता जोड़ें.

1. पुष्टि करना कि आप साइट के मालिक हैं

Search Console का इस्तेमाल करके, अपनी साइट के मालिकाना हक की पुष्टि करें. पुष्टि करने के लिए किसी भी ऐसे तरीके का इस्तेमाल करें जो Search Console पर काम करता हो. अपनी साइट को दिखाने के लिए, डोमेन प्रॉपर्टी (example.com), यूआरएल-प्रीफ़िक्स प्रॉपर्टी (https://example.com या https://example.com/some/path/) बनाएं. (ध्यान दें कि Search Console में साइटों को प्रॉपर्टी कहा जाता है.)

2. अपने सेवा खाते को मालिकाना हक का दर्जा देना

इसके बाद, अपने सेवा खाते को साइट के (चुने गए) मालिक के तौर पर जोड़ें:

  1. वेबमास्टर सेंट्रल खोलें.
  2. उस प्रॉपर्टी पर क्लिक करें जिसके लिए आपने मालिकाना हक की पुष्टि की है.
  3. मालिकाना हक की पुष्टि वाली सूची में जाकर, मालिक जोड़ें पर क्लिक करें.
  4. साइट के चुने गए मालिक के तौर पर, अपने सेवा खाते का ईमेल पता दें. अपने सेवा खाते का ईमेल पता, दो जगहों पर ढूंढा जा सकता है:
    • JSON निजी कुंजी के client_email फ़ील्ड में, जिसे आपने प्रोजेक्ट बनाते समय डाउनलोड किया था.
    • Developers Console में दिखने वाले सेवा खाते के सेवा खाता आईडी कॉलम में.
    ईमेल पते का फ़ॉर्मैट ऐसा होता है:
    my-service-account@project-name.google.com.iam.gserviceaccount.com
    जैसे: my-service-account@test-project-42.google.com.iam.gserviceaccount.com

ऐक्सेस टोकन पाना

इंडेक्सिंग एपीआई को की गई हर कॉल की पुष्टि, OAuth टोकन से की जानी चाहिए. यह टोकन, आपको अपनी निजी कुंजी डालने पर मिलता है. हर टोकन एक खास समय तक काम करता है. Google कई भाषाओं के लिए एपीआई क्लाइंट लाइब्रेरी की सुविधा देता है. इससे आपको OAuth टोकन मिल सकते हैं.

ज़रूरी बातें

इंडेक्सिंग एपीआई को अनुरोध सबमिट करते समय, अनुरोध में ये चीज़ें होनी चाहिए:

  1. अनुमति देने वाले लिंक के तौर पर, https://www.googleapis.com/auth/indexing का इस्तेमाल करें.
  2. एपीआई इस्तेमाल करना, इस लिंक में बताए गए किसी एक एंडपॉइंट का इस्तेमाल करें.
  3. अनुरोध में, सेवा खाते को ऐक्सेस करने के लिए टोकन शामिल करें.
  4. एपीआई इस्तेमाल करना में दिए गए कोड के हिसाब से अनुरोध का कोड डालें.

उदाहरण

नीचे दिए गए उदाहरणों में OAuth ऐक्सेस के लिए टोकन पाने का तरीका बताया गया है:

Python

Python के लिए Google API क्लाइंट लाइब्रेरी इस्तेमाल करके OAuth टोकन पाएं:

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

Java के लिए Google API क्लाइंट लाइब्रेरी इस्तेमाल करके OAuth टोकन पाएं:

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

PHP के लिए Google API Client library इस्तेमाल करके OAuth टोकन पाएं:

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 के लिए

Node.js के लिए Google API Client library का इस्तेमाल करके OAuth टोकन पाएं.

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);
  });
});

टोकन पाने के तरीकों के अलावा, इन उदाहरणों में यह भी बताया गया है कि अनुरोध वाले मैसेज में कोड कहां जोड़ा जा सकता है. किस तरह के कॉल किए जा सकते हैं और उन कॉल के लिए मैसेज के मुख्य हिस्से में क्या लिखा होना चाहिए. यह सब जानने के लिए एपीआई का इस्तेमाल करना लेख देखें.