如何在Sentry中自定义用户反馈表单?
默认情况下,is会说“看起来我们遇到了一些内部问题”。
是否可以更改消息、收集的数据等?
谢谢。
发布于 2017-03-16 05:33:43
有一个here接口,但你必须获得一个event_id,它基本上是由你的应用程序中的错误或异常生成的……我仍然在试图弄清楚如何在没有默认集成表单的情况下使用这个功能。
发布于 2019-06-04 00:31:28
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)'
});
}
}发布于 2021-02-02 09:23:24
目前的做法似乎是这样的:
的特殊端点
详细信息在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});https://stackoverflow.com/questions/40353098
复制相似问题