Indexing#

service_type: indexing · type_request: indexing · Bảng DB: indexing_link

Dịch vụ yêu cầu Google/Bing crawl + index URL mới tạo (thường dùng sau khi các dịch vụ khác như link_cloud/blog20 đã hoàn thành).

Lưu ý: Task_generator không tự tạo indexing_link — các dịch vụ khác trigger tạo qua callback khi link post hoàn thành.

Server nhận task: services[] chứa indexing (ví dụ Indexing 1).


1. Lấy danh sách task#

Request#

curl -X GET 'https://manager.likepion.com/api/v1/worker/tasks?limit=5' \
  -H 'X-API-Key: <api_key_server_indexing>'

Response#

{
  "success": true,
  "data": [
    {
      "id": "a67c616c-cf6f-4f53-92a8-393d69a0cf58",
      "service_type": "indexing",
      "type_request": "indexing",
      "request_id": "",
      "domain": "https://my-site.github.io/blog/post-1",
      "extras": {
        "source_service": "link_cloud",
        "url": "https://my-site.github.io/blog/post-1",
        "index_source": "google_indexing_api"
      }
    }
  ]
}

Giải thích fields#

FieldMô tả
idID task
domainChính là URL cần index (lấy từ indexing_link.url)
request_idThường rỗng (indexing không bắt buộc thuộc request cụ thể)
extras.source_serviceDịch vụ gốc tạo URL (link_cloud, blog20, entity, social, podcast, stacking, blog_comment)
extras.urlURL target (duplicate của domain cho rõ ràng)
extras.index_sourceAPI/method dùng để index (google_indexing_api, bing_webmaster, instant_indexing, sitemap_ping…)

2. Lấy chi tiết task #

Lấy thông tin 1 task cụ thể theo id. Không cần filter server/status. Không thay đổi DB.

curl -X GET 'https://manager.likepion.com/api/v1/indexing/links/TASK_ID' \
  -H 'X-API-Key: <api_key>'

Response#

Trả về 1 object (không bọc trong mảng) — schema giống bước 1.

{ "success": true, "data": { ...task fields... } }

Nếu task không tồn tại hoặc đã soft-delete → HTTP 404 {"success": false, "message": "task not found"}.


3. Báo hoàn thành#

Request#

curl -X POST 'https://manager.likepion.com/api/v1/worker/tasks/a67c616c-cf6f-4f53-92a8-393d69a0cf58/complete?service_type=indexing&type_request=indexing' \
  -H 'X-API-Key: <api_key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "service_type": "indexing",
    "type_request": "indexing",
    "note": "indexed successfully via Google Indexing API"
  }'
FieldBắt buộcMô tả
service_typeindexing
type_requestindexing
noteGhi chú kết quả (thường dùng để lưu index status/timestamp từ Google)

Response#

{ "success": true }

4. Báo thất bại#

Request#

curl -X POST 'https://manager.likepion.com/api/v1/worker/tasks/a67c616c-cf6f-4f53-92a8-393d69a0cf58/fail?service_type=indexing&type_request=indexing' \
  -H 'X-API-Key: <api_key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "service_type": "indexing",
    "type_request": "indexing",
    "error_message": "URL rejected by Google Indexing API: no robots.txt"
  }'

Response#

{ "success": true }

5. Flow#

1. Service khác (vd link_cloud) hoàn thành → callback tạo indexing_link
2. Dispatcher gán server_id (Indexing 1)
3. Tool pull → nhận URL + source_service + index_source
4. Gọi API tương ứng:
   - google_indexing_api → POST /v1/urlNotifications (service account)
   - bing_webmaster → POST /GetURL  
   - sitemap_ping → GET google.com/ping?sitemap=...
5. POST /tasks/:id/complete (hoặc fail)