php中的RedditAPI为提交故事返回错误的验证码

php中的RedditAPI为提交故事返回错误的验证码,php,api,httprequest,reddit,Php,Api,Httprequest,Reddit,使用php for Reddit api提交故事会返回错误的验证码。 我能够使用api登录,并使用api完美地获取usermod和captcha。 理想情况下,如果reddit_会话cookie通过,它应该发布,而不是返回错误的验证码。有人能告诉我一些关于这方面的信息吗 参考链接: 据我所知,目前RedditAPI中的验证码被破坏。他们最初使用的是过时的PyCAPTCHA,现在已经过时了。从那时起,出现了一个使用api\u type:json的方法,它有一个解决方法,github上的某个人目前

使用php for Reddit api提交故事会返回错误的验证码。 我能够使用api登录,并使用api完美地获取usermod和captcha。 理想情况下,如果reddit_会话cookie通过,它应该发布,而不是返回错误的验证码。有人能告诉我一些关于这方面的信息吗

参考链接:


据我所知,目前RedditAPI中的验证码被破坏。他们最初使用的是过时的PyCAPTCHA,现在已经过时了。从那时起,出现了一个使用
api\u type:json
的方法,它有一个解决方法,github上的某个人目前正在使用它。他还提供了一个解释/解决方案:

很简单,当需要>验证码时,json(尽管不是jquery)结果应该包含验证码id。我所说的验证码id是指完成url的部分,如下图所示:>http://www.reddit.com/captcha/(验证码id).png

我遇到的用例是在尝试使用>api_type:json通过api提交故事时。我得到很好的通知,我不存在的验证码是不正确的,但是,我>然后必须向发出请求以获取>验证码id。最后一次往返似乎没有必要


对于最近偶然发现这个问题并仍有此问题的其他人:


上述问题已经修复,并且可以正常工作。但是,如果您为reddit机器人创建了一个新帐户,并尝试提交一个故事,您将收到一个错误的验证码。新帐户必须提交验证码,直到他们获得一定数量的业力,所以这就是你看到的错误。请使用旧帐户尝试该请求,这将解决您的问题。

我很想知道答案,我自己也有同样的问题。API中的验证码有什么意义?非常感谢。我花了很长时间才找到这个修复程序。你是说你无法获取验证码链接图像,这样我们就可以将其嵌入到应用程序中,这样用户就可以解决应用程序内部的问题?
<?php
$user = "";
$passwd = "";
$url = "http://www.reddit.com/api/login/".$user;

$r = new HttpRequest($url, HttpRequest::METH_POST);
$r->addPostFields(array('api_type' => 'json', 'user' => $user, 'passwd' => $passwd));

try {
    $send = $r->send();
    $userinfo = $send->getBody();
} catch (HttpException $ex) {
    echo $ex;
}

$arr = json_decode($userinfo,true);

$modhash = $arr['json']['data']['modhash'];
$reddit_session = $arr['json']['data']['cookie'];

$post = array('uh'=>$modhash,
               'kind'=>'link',
                'url'=>'yourlink.com',
                'sr'=>'funny',
                'title'=>'omog-asdfasf',
                'id'=>'newlink',
                'r'=>'funnyier',                
                'renderstyle'=> 'html'              
                );


$url = "http://www.reddit.com/api/submit";

// Upvote RoboHobo's comment :)
// Add user cookie data
$r->addCookies(array("reddit_session" => $reddit_session));
// Set URL to vote
$r->setUrl($url);
// Add vote information, found at http://wiki.github.com/talklittle/reddit-is-fun/api-all-functions
$r->setPostFields($post);
// Send request blindly


try {
    $userinfo = $r->send();
} catch (HttpException $ex) {
    echo $ex;   
}
pre($userinfo);
exit;

function pre($r){
echo "<pre />";
print_r($r);
}
?>