uni-app 看完激励广告关闭时报错 access token disabled for ANONYMOUS login 更新没效果

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app 看完激励广告关闭时报错 access token disabled for ANONYMOUS login 更新没效果

开发环境 版本号 项目创建方式
Windows 10 专业版 4.41 HBuilderX

产品分类:uniapp/小程序/微信

PC开发环境操作系统:Windows

HBuilderX类型:正式

第三方开发者工具版本号:RC 1.06.2412031

基础库版本号:3.6.6

项目创建方式:HBuilderX


示例代码:

‘Error: [uniAdCallback]: access token disabled for ANONYMOUS login
at e.exports (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:19)
at new t (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:17)
at n.<anonymous> (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:17)
at new n (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:17)
at e.<anonymous> (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:17)
at p (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:20)
at Generator.<anonymous> (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:20)
at Generator.next (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:20)
at n (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:22)
at s (vendor.js?t=wechat&s=1734139840785&v=30404eb5e6cca5bacd6b3a73b61b5359:22)’

8 回复

有无办法处理啊, 好几天了

不行啊, 我已经按照说明要求 升级到 HBuilderX 4.41 -alpha ,升级后又重新上传了云函数和公共对象,再重新发布,测试 还是一样的提示,

回复 3***@qq.com: 收到 正在排查个别用户问题

回复 DCloud_uni-ad_HDX: 更新了上面链接里的内容 按照提示在试试

回复 DCloud_uni-ad_HDX: 谢谢 覆盖已经可以了

在处理 uni-app 中激励广告关闭时出现的 access token disabled for ANONYMOUS login 错误时,通常这表示你的应用尝试执行了一个需要用户登录的操作,但当前用户处于匿名登录状态。这个问题往往与广告SDK的权限设置或用户认证流程有关。下面我将提供一个基本的代码框架和思路,帮助你解决这个问题,而不是直接给出具体的“建议”,而是通过代码示例展示如何管理用户登录状态和广告请求。

1. 确保用户登录状态

首先,确保在请求广告之前用户已经正确登录。在 uni-app 中,你可以使用 uni.login 方法获取用户的登录凭证,并通过后端服务器换取 openid 和 session_key。这里是一个简单的登录流程示例:

uni.login({
    success: function (loginRes) {
        if (loginRes.code) {
            // 发送 res.code 到后台换取 openId, sessionKey, unionId
            uni.request({
                url: 'https://your-server.com/login',
                data: {
                    code: loginRes.code
                },
                success: function (response) {
                    // 保存 sessionKey 和 openId 到本地
                    uni.setStorageSync('sessionKey', response.data.sessionKey);
                    uni.setStorageSync('openId', response.data.openId);

                    // 接下来请求广告
                    requestAd();
                }
            });
        } else {
            console.log('登录失败!' + loginRes.errMsg);
        }
    }
});

2. 广告请求与展示

确保在广告请求和展示逻辑中,用户已经登录。这里是一个假设的广告请求和展示函数:

function requestAd() {
    if (uni.getStorageSync('sessionKey')) {
        // 用户已登录,请求广告
        uni.createRewardedVideoAd({
            adUnitId: 'your-ad-unit-id',
            success: function (res) {
                console.log('广告创建成功');
                res.show().catch(err => {
                    console.error('广告展示失败', err);
                });
            },
            fail: function (err) {
                console.error('广告创建失败', err);
            }
        });
    } else {
        console.error('请先登录');
        // 引导用户登录
        uni.showModal({
            title: '提示',
            content: '请先登录以查看广告',
            success: function (res) {
                if (res.confirm) {
                    // 跳转到登录页面
                    uni.navigateTo({
                        url: '/pages/login/login'
                    });
                }
            }
        });
    }
}

总结

上述代码展示了如何在 uni-app 中管理用户登录状态,并在确保用户已登录后请求和展示激励广告。注意,这里的代码是简化的示例,实际项目中可能还需要处理更多的边界情况和错误处理。确保你的后端服务器正确处理登录请求,并返回有效的 sessionKey 和 openId。

回到顶部