技能 编程开发 Grammarly Webhooks与事件处理

Grammarly Webhooks与事件处理

v20260423
grammarly-webhooks-events
本指南用于处理Grammarly API的异步操作和事件通知。由于API缺乏原生推送Webhook,本技能展示了通过轮询(如抄袭检测)获取结果,并构建事件总线(Event Bus)来监听和响应内容得分或AI检测等关键事件,确保系统能安全、可靠地处理数据流。
获取技能
348 次下载
概览

Grammarly Webhooks & Events

Overview

Grammarly's current API is request/response based — there are no push webhooks. For async operations (plagiarism detection), you poll for results. Build your own event system around Grammarly API results.

Instructions

Step 1: Plagiarism Polling with Callback

async function plagiarismWithCallback(
  text: string,
  token: string,
  onComplete: (result: any) => void
) {
  const createRes = await fetch('https://api.grammarly.com/ecosystem/api/v1/plagiarism', {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' },
    body: JSON.stringify({ text }),
  });
  const { id } = await createRes.json();

  const poll = async () => {
    const res = await fetch(`https://api.grammarly.com/ecosystem/api/v1/plagiarism/${id}`, {
      headers: { 'Authorization': `Bearer ${token}` },
    });
    const result = await res.json();
    if (result.status === 'pending') { setTimeout(poll, 3000); return; }
    onComplete(result);
  };
  poll();
}

Step 2: Build Event Bus for Score Results

import { EventEmitter } from 'events';

const grammarlyEvents = new EventEmitter();

grammarlyEvents.on('score.completed', (data) => {
  if (data.overallScore < 60) console.warn('Low quality content detected');
});

grammarlyEvents.on('ai.detected', (data) => {
  if (data.score > 70) console.warn('Likely AI-generated content');
});

Resources

Next Steps

For performance, see grammarly-performance-tuning.

信息
Category 编程开发
Name grammarly-webhooks-events
版本 v20260423
大小 2.15KB
更新时间 2026-04-28
语言