You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Disqus无法发布带author_name的评论?遇权限报错

解决Disqus提交带指定author_name评论的问题

核心问题分析

你遇到的两个问题本质是Disqus API的权限和参数逻辑导致的:

  • 用公钥提交时报错,是因为公钥仅支持只读操作,写入评论需要应用私钥或正确的授权方式;
  • 用个人accessToken提交时author_name不生效,是因为accessToken代表已登录用户,Disqus会强制使用账号本身的信息,忽略访客作者参数。

正确解决步骤

1. 配置论坛与应用权限

  • 开启访客评论:在Disqus论坛后台的「设置-评论-访客评论」中,勾选允许访客评论,并开启「允许输入姓名和邮箱」选项;
  • 绑定应用与论坛:在Disqus开发者后台,确保你的应用已关联目标论坛,且拥有write权限;
  • 添加信任域名:在论坛后台「设置-高级-信任域名」中,添加你的静态网站域名,避免referrer校验失败。

2. 使用应用私钥提交访客评论

要提交带指定author_name的第三方评论,必须使用应用私钥(而非公钥)调用posts/create端点,参数如下:

  • api_key:你的Disqus应用私钥(在开发者后台获取);
  • forum:论坛的shortname(不是显示名称,可在论坛后台设置中找到);
  • thread:目标线程的identifier或线程ID;
  • message:评论内容;
  • author_name:需要指定的访客作者名;
  • author_email:访客邮箱(仅需格式合法,无需验证真实存在);
  • referrer:你的静态网站域名(需在信任域名列表内)。

3. C# 请求示例

using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;

public async Task SubmitDisqusComment()
{
    using (HttpClient client = new HttpClient())
    {
        var postData = new Dictionary<string, string>
        {
            { "api_key", "你的应用私钥" },
            { "forum", "你的论坛shortname" },
            { "thread", "线程的identifier" },
            { "message", "评论内容文本" },
            { "author_name", "第三方评论作者名" },
            { "author_email", "author@example.com" },
            { "referrer", "https://你的静态网站域名.com" }
        };

        var content = new FormUrlEncodedContent(postData);
        var response = await client.PostAsync("https://disqus.com/api/3.0/posts/create.json", content);
        var responseContent = await response.Content.ReadAsStringAsync();
        
        // 处理响应结果,比如解析JSON判断是否成功
    }
}

4. 额外排查点

  • 先确认线程存在:如果目标线程还未在Disqus中创建,需先调用threads/create端点(同样用私钥)创建线程,再提交评论;
  • 避免跨域问题:必须在服务器端发起请求,不要在前端浏览器直接调用(会暴露私钥,且容易触发跨域限制)。

内容的提问来源于stack exchange,提问作者Dennis van der Stelt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:50:14