Php Disqs API:以来宾身份创建评论

Php Disqs API:以来宾身份创建评论,php,curl,disqus,Php,Curl,Disqus,我正在尝试使用Disqs API向现有的讨论/论坛添加帖子。 在文档中,我可以读到我可以作为一个访客发送评论,而无需验证。 文件上说: 在两种情况下允许匿名评论: 您正在使用旧版身份验证和密钥 您使用的是公钥,您来自经验证的推荐人,您未经验证, 您试图在其上创建帖子的论坛将列在应用程序信任论坛中 要创建匿名评论,只需发送作者电子邮件和作者姓名,或者 author\u url参数 因此,我使用此代码在PHP中创建注释。(我使用了一个非常简单的cURL类,但问题并不存在,因为我在disqs.com

我正在尝试使用Disqs API向现有的讨论/论坛添加帖子。 在文档中,我可以读到我可以作为一个访客发送评论,而无需验证。 文件上说:

在两种情况下允许匿名评论:

  • 您正在使用旧版身份验证和密钥
  • 您使用的是公钥,您来自经验证的推荐人,您未经验证, 您试图在其上创建帖子的论坛将列在应用程序信任论坛中
  • 要创建匿名评论,只需发送作者电子邮件和作者姓名,或者 author\u url参数

    因此,我使用此代码在PHP中创建注释。(我使用了一个非常简单的cURL类,但问题并不存在,因为我在disqs.com/api的控制台中得到了相同的类)

    但我是通过JSON得到错误的

    {"code": 4, "response": "You must be authenticated to perform this action"}
    
    我知道其他人已经问过这个问题(),但建议的回答是使用OAuth并获得身份验证。但我不想进行身份验证,我想发送带有姓名和电子邮件的客人评论。 我错在哪里


    非常感谢您的回复。

    若要匿名评论,您不会传递任何访问令牌。但是,您必须确保以下条件为真:

  • 在您的网站设置中的“常规”下,确保选中“允许客人评论”
  • 在您的网站设置中,在“高级”选项卡下,将您的域添加为受信任域
  • 在API应用程序设置中,将受信任域中的相同域添加到API应用程序的受信任域列表中
  • 当您发出发布评论的API请求时,请确保您的“referer”头中有一个域位于其中一个受信任的域上,并将“host”头设置为“.disqs.com”以进行适当的度量
  • 使用公钥发出API请求
  • 我能够按照这些规则成功地提出请求


    为了明确起见,您需要拥有/管理该网站,以便通过API向其发布匿名评论。执行此操作时,还要确保传递额外的
    strict=1
    参数。默认情况下,会简单地删除任何出现错误的可选参数,因此,如果作者姓名和作者电子邮件出现错误,您可能会遇到评论以您自己的身份发布的情况。

    在检查明显的事情后(例如启用来宾发布和在论坛和应用程序设置中检查我的引用域),我终于能够使用库解决这个问题:

    问题在于,
    api_密钥
    与discs应用程序设置中显示的公钥不同。实际上,我必须检查来自Disqs Javascript小部件的一个AJAX调用,以获得正确的
    api\u键


    我再次打开此线程,因为我有相同的问题,似乎还没有答案

    几天来,我一直在尝试以嘉宾身份通过API发表评论。 如果我阅读了API文档,它会说我必须传递消息、作者姓名、作者url、线程和API密钥才能这样做,但不能这样做。我总是很紧张

    "Code: 12"
    

    如果我通过access_令牌发送,它会工作,但它会以我的身份发布,这不是我想要的

    我还在Github和初学者部分的自述文件中找到了它引用的一个片段

    “创建来宾评论:/php/Create guest comment.php”

    但是找不到代码片段。因此,我查看了提交并找到了。我是否应该认为这是一个暗示,disqs目前还不能通过API作为来宾创建评论?如果是这样,Discus可能会更新您的文档


    如果我做错了什么,我会很感激你给我指出正确的方向。

    非常感谢你的回复。我添加了access\u token参数(正如我昨天尝试的那样),但现在我得到了错误“您不能将[author\u name、author\u email、author\u url]中的任何一个指定为经过身份验证的用户”,因为使用access\u token我正确地作为discus用户进行身份验证。我现在如何解决?我将等待您的答复:)访问令牌是与您的API应用程序关联的令牌吗?您拥有的用户名是否用于发布到的站点?这两个条件都必须是正确的,才能以来宾身份发布评论。是的,这两个条件都是正确的。我在Discus上有一个帐户,我用它创建了一个网站,所以我是主要的版主。然后我创建了一个应用程序,并从中复制了访问令牌。我错了吗?我不明白问题出在哪里。。非常感谢你的帮助!我也被困在同样的场景中,这是非常令人沮丧的!我只是想将旧的评论作为来宾评论迁移到Disqs,切换到Disqs系统。这真的不可能吗?我能简单地陷入一个系统错误吗?我得到了相同的API密钥。这让我觉得这个解决方案只是在可嵌入的小部件上实现的。我注意到,在使用这个API键并进行调用之后,我的应用程序的使用统计数据不会受到影响。我暂时称之为解决办法。不过,这里没有抱怨。我当时很紧张。这有点大,你可能认为他们现在已经解决了。我这里也有相同的API密钥。不在这里工作。他们应该已经修复了这个后门。API密钥仍然是“E8UH5L5FHZ6GD8U3KYCJAIAK46F68ZW7C6EW8WSJZVCLXEBZ7P0R1YRYDRILK2F”
    require __DIR__ . '/disqus-php-master/disqusapi/disqusapi.php';
    
    $disqus = new DisqusAPI($secret_key);
    
    print_r($disqus->posts->create(array(
        'thread' => $thread_id,
        'message' => $message,
        'author_name' => $author_name,
        'author_email' => $author_email,
        'api_key' => $api_key,
    )));
    
    "Code: 12"
    
    "This application cannot create posts on the chosen forum".