如何在Sentry中自定义用户反馈表单?
默认情况下会出现类似于&#34的内容;看起来我们遇到了一些内部问题。"
是否可以更改消息,收集的数据等?
感谢。
答案 0 :(得分:0)
有一个API here,但您必须得到一个event_id
,它基本上是由您的应用中的错误或异常生成的......我仍在尝试弄清楚如何使用此功能没有默认的集成表单。
答案 1 :(得分:0)
Sentry具有内置的前端用户反馈表,您可以在一定程度上触发和自定义该表。 Angular4 +中的基本实现如下所示:
import { ErrorHandler } from '@angular/core';
import { Config } from '../config/config';
import * as Sentry from '@sentry/browser';
Sentry.init({
dsn: 'https://0123456789abcdef.sentry.io/000001',
release: Config.SENTRY_RELEASE
});
export class SentryErrorHandler implements ErrorHandler {
handleError(error: any): void {
const eventId = Sentry.captureException(error.originalError || error);
Sentry.showReportDialog({
eventId,
title: 'Aw, Snap! You broke the internet!',
subtitle: 'Send us an email and we will fix it.',
subtitle2: 'Please refresh your cache to continue (cmd+R / ctrl+R)'
});
}
}
答案 2 :(得分:0)
现在的方式好像是这样的:
详情见https://github.com/getsentry/sentry-javascript/issues/3111
const dsn = SENTRY_DSN;
const eventId = captureMessage("User report");
const query = Object.entries({dsn, eventId})
.map(([k, v]) => `${ k }=${ encodeURIComponent(v) }`).join("&");
const body = new FormData();
Object.entries(
{name: "Alex Foo", email: "a.foo@example.com", comments: "Long text goes here"})
.map(([k, v]) => body.append(k, v));
fetch(`https://sentry.io/api/embed/error-page/?${ query }`,
{method: "POST", body});