Telegram 登录小部件无法在我的网站上运行,我不明白为什么。 只是当 Telegram 必须发送确认消息时,它就卡住了。 如果我已经登录 telegram.org,它可以按需要工作,但我无法通过我的网站收到确认。 启用跨站点 cookie 并不能解决问题。 我的小部件代码:
import React, { useRef, useEffect } from 'react'
import PropTypes from 'prop-types'
const TelegramLoginButton = ({
botName,
buttonSize,
className,
cornerRadius,
requestAccess,
usePic,
dataOnauth,
dataAuthUrl,
lang,
}) => {
const instance = useRef(null)
useEffect(() => {
if (instance) {
window.TelegramLoginWidget = {
dataOnauth: (user) => { dataOnauth(user) },
}
const script = document.createElement('script')
script.src = 'https://telegram.org/js/telegram-widget.js?14'
script.setAttribute('data-telegram-login', botName)
script.setAttribute('data-size', buttonSize)
if (cornerRadius !== undefined) {
script.setAttribute('data-radius', cornerRadius)
}
script.setAttribute('data-request-access', requestAccess)
script.setAttribute('data-userpic', usePic)
script.setAttribute('data-lang', lang)
if (dataAuthUrl !== undefined) {
script.setAttribute('data-auth-url', dataAuthUrl)
} else {
script.setAttribute(
'data-onauth',
'TelegramLoginWidget.dataOnauth(user)',
)
}
script.async = true
instance.current.appendChild(script)
}
}, [instance])
return (
<div ref={instance} className={className} />
)
}
TelegramLoginButton.propTypes = {
botName: PropTypes.string.isRequired,
className: PropTypes.string,
dataOnauth: PropTypes.func,
dataAuthUrl: PropTypes.func,
buttonSize: PropTypes.oneOf(['large', 'medium', 'small']),
cornerRadius: PropTypes.number,
requestAccess: PropTypes.string,
usePic: PropTypes.bool,
lang: PropTypes.string,
}
TelegramLoginButton.defaultProps = {
botName: 'tgmm_xyz_bot',
buttonSize: 'large',
dataOnauth: () => undefined,
lang: 'ru',
requestAccess: 'write',
usePic: true,
}
export default TelegramLoginButton
我通过更改域来修复它。我不知道为什么,但电报登录小部件不想与 tgmm.xyz 域一起使用。
除了更改域名之外还有其他方法可以解决这个问题吗?