标签: stackexchange-api

使用Stacky API获取Stack Overflow问题

我想从Stack Overflow使用Stacky C#库获取Stack Exchange的最新问题.

我拿了示例代码并尝试运行它,但它在从Stack Exchange网站返回数据时会挂起.

StackyClient client = new StackyClient("0.9", "", Sites.StackOverflow, 
            new UrlClient(), new JsonProtocol());

var o = new QuestionOptions();
o.FromDate = DateTime.Now.AddMinutes(-10.0);
o.ToDate = DateTime.Now;
o.IncludeAnswers = false;
o.IncludeBody = false;
o.IncludeComments = false;
o.SortBy = QuestionSort.Creation;
o.SortDirection = SortDirection.Descending;

IPagedList<Question> l = client.GetQuestions(o); <--- program hangs here 4ever
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我还看到我可以注册我的应用程序来获取API密钥.但是,没有必要让它首先运行,是吗?

编辑

如果我删除线

o.FromDate = DateTime.Now.AddMinutes(-10.0);
o.ToDate = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

它起作用并返回所有问题.如果我添加该行

o.Max = 50; …
Run Code Online (Sandbox Code Playgroud)

c# stacky stackexchange-api

10
推荐指数
1
解决办法
512
查看次数

如何使用Spring-Web中的RestTemplate解析gzip编码的响应

在我修改了一个RESTful Web服务示例以从api.stackexchange.com 调用来自id的用户之后,我得到了JsonParseException:

com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens

响应来自api.stackexchange.comgzip压缩.

如何在Spring-Web RestTemplate中添加对gzip压缩响应的支持?

我正在使用Spring boot parent ver.1.3.1.RELEASE因此Spring-Web4.2.4-RELEASE

这是我调整后的例子:

User.java

package stackexchange.dto;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonNaming(LowerCaseWithUnderscoresStrategy.class)
public class User {

    // Properties made public in order to shorten the example
    public int userId;
    public String displayName;
    public int reputation;

    @Override
    public String toString() {
        return "user{" …
Run Code Online (Sandbox Code Playgroud)

spring resttemplate stackexchange-api spring-web

10
推荐指数
1
解决办法
1万
查看次数

从Emacs访问StackExchange API

我试图从Emacs的elisp访问StackExchange API:

(require 'url)
(require 'json)

(defvar url-http-end-of-headers)

(defun read-json ()
  (interactive)
  (with-current-buffer (url-retrieve-synchronously "http://api.stackoverflow.com/0.8/users/2386")
  (goto-char url-http-end-of-headers)
  (json-read)))
Run Code Online (Sandbox Code Playgroud)

M-x read-json导致以下错误:JSON readtable error.

我错过了什么吗?

emacs elisp stackexchange-api

9
推荐指数
1
解决办法
1002
查看次数

Stack Overflow API:获取用户的"新邮件"!通知?

当有人回复您的问题(或网站上的许多其他操作)时,您会收到一些"新邮件"!在站点左上角的"StackExchange"菜单中键入图标.

在此处查看API文档:http: //api.stackoverflow.com/1.0/usage

我没有看到为登录用户获取"新邮件"计数的方法.可能吗?

web-applications stackexchange-api

9
推荐指数
1
解决办法
193
查看次数

通过curl登录stackoverflow.com

我正在尝试以编程方式登录我的stackoverflow.com帐户.我试着像下面那样做一个卷曲,但它要求内容长度:

$ curl -X POST --user abc@gmail.com:abc https://stackoverflow.com/users/login -v
*   Trying 151.101.193.69...
* Connected to stackoverflow.com (151.101.193.69) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: *.stackexchange.com
* Server certificate: DigiCert SHA2 High Assurance Server CA
* Server certificate: DigiCert High Assurance EV Root CA
* Server auth using Basic with user 'abc@gmail.com'
> POST /users/login HTTP/1.1
> Host: stackoverflow.com
> Authorization: Basic YWJjQGdtYWlsLmNvbTphYmM=
> User-Agent: curl/7.43.0
> Accept: */*
> Content-Type:application/json
> 
< HTTP/1.1 411 Length …
Run Code Online (Sandbox Code Playgroud)

authentication curl login stackexchange-api

9
推荐指数
1
解决办法
274
查看次数

使用 Stackexchange API 检索答案和评论的文本正文

我正在尝试使用堆栈交换 API 从堆栈溢出中检索与 Python 相关的问题、问题评论和问题答案。我想提取所有信息,包括问题、评论和答案的正文。为了提取问题,我使用以下代码:

questions = SITE.fetch('questions', tagged='python', fromdate=from_date, todate=today,filter='!9YdnSIN*P')
Run Code Online (Sandbox Code Playgroud)

此过滤器返回与问题相关的所有信息,包括问题的文本正文。但是,当我使用相同的过滤器来提取这些问题的答案时,我没有得到答案的文本正文。这是代码:

answers = SITE.fetch('questions/{ids}/answers', ids=[59239886],filter='!9YdnSIN*P')
Run Code Online (Sandbox Code Playgroud)

当我将过滤器的值更改为

'!*SU8CGYZitCB.D*(BDVIficKj7nFMLLDij64nVID)N9aK3GmR9kT4IzT*5iO_1y3iZ)6W.G*'
Run Code Online (Sandbox Code Playgroud)

它开始检索答案的文本正文,但丢失了其他重要信息(标签),例如显示与问题相关的答案的“question_id”。检索与问题评论相关的信息也存在同样的问题。

谁能指导我如何在不丢失重要信息的情况下获得答案和评论的正文?

python stackexchange python-3.x stackexchange-api

9
推荐指数
1
解决办法
461
查看次数

无法解析的StackExchange API响应

我编写了一个小程序来分析StackExchange API中的配置文件数据,但是api会向我发送unsarse-/unreadable数据.

收到的数据:(使用c#自行下载)

\ u001f\B\0\0\0\0\0\U0004\0mRMo0\F /:d $ C'^ {/\u0006\u0018G> \我\ u0015\U0004݀d> GRL'o\u0004G%JP\u001c-EM> 0Xbm〜\u0018tk\u0014M] rdLGv0〜FJ = 1\u00031I> kTRA \"(/ +; NL\u0018 2 H\u0014P藄XaLw#3\U0002 +\u007f\u0010\u000fp】v\u007f \吨ڧ\nf "\ u0018 \00ƺ 1x#j ^- c AX\t \u001aT @ qj \u001aU7 \u0014 \"\ a ^ \b #\ u001eQG%Y \吨חq00K\AV\u0011 {ظ\ u0005 \"\ u001d + |\u007f'\ u0016〜 8\u007f\U0001-H] O\u007fVo\u007f\U0001〜Y\U0003\U0002\0\0

想要的数据:(从我的浏览器复制粘贴)

{ "物品":[{ "badge_counts",{ "青铜":987, "银":654, "金":321}, "ACCOUNT_ID" 123456789 "is_employee":假"LAST_MODIFIED_DATE":1250612752" last_access_date ":1250540770,"年龄":0," reputation_change_year ":987," reputation_change_quarter ":654," reputation_change_month ":321," reputation_change_week ":98," reputation_change_day ":76,"信誉":9876," CREATION_DATE" :1109670518,"user_type":"registered","user_id":123456789,"accept_rate":0,"location":"Australia","website_url":" http://example.org ","link":" …

c# webclient downloadstring stackexchange-api

8
推荐指数
1
解决办法
1752
查看次数

使用OpenID来证明Stackoverflow成员资格

这是交易:
- Flair几乎要求Facebook应用程序 -
我正在努力学习Facebook平台

因此,我写了一个小巧的Facebook应用程序,将你的Flair嵌入到你个人资料一侧的方框中. 如果您对Facebook感兴趣 ; 请注意,这是一项非常重要的工作,容易发生变化并且有一大堆粗糙的边缘.

但是,我没有一种优雅的方式来说明这是"这是我的Stackoverflow配置文件"来自这个极简的应用程序.我目前的解决方案最能证明这一形象.坦率地说,这是愚蠢的; 并没有什么可以阻止冒充.

没有OpenID的经验,我想知道是否有某种方式(以及这种方式的一些例子)让用户向第三方提供他们的Stackoverflow标识?


行为改变为Noldorin的回答.在UserVoice上
请求以更好的方式执行此操作.

php openid facebook stackexchange-api

7
推荐指数
1
解决办法
635
查看次数

在网站中显示Stackoverflow评级/信誉/徽章

在Stackoverfow获得声誉是一项艰苦的工作,如果我能在我的网站上获得声誉,我会感到高兴.可能吗?

stackoverflow是否会针对用户公开任何API?

[UPDATE]

当我输入时

http://api.stackoverflow.com/1.1/users/ {user-id} /

它给了我一个JSON数据,这对我来说似乎很好.可以这样使用它吗?

stackapps.com得到它回复Nathan Osman

谢谢.

stackexchange-api

6
推荐指数
1
解决办法
467
查看次数

NodeJ:分页获取请求

当从stackexchange API请求Q&A时,JSON响应具有has_more(布尔值)参数,如果为true,则意味着使用

http://api.stackexchange.com/2.2/questions?order=desc&sort=activity&site=stackoverflow&filter=withbody&pagesize=30&tagged=java&page=1
Run Code Online (Sandbox Code Playgroud)

响应看起来像这样

{items: [
      ..]
 has_more: true,
 quota_max: 300,
 quota_remaining: 281
}
Run Code Online (Sandbox Code Playgroud)

我想要最好的方法来获取所有可能的响应,同时保持quota_max限制。到目前为止,我的模块能够得到一个结果:

exports.getQuestions = function(q,tag,page){
return new Promise(function(resolve, reject){

var request = require('request');
var url = 'http://api.stackexchange.com/2.2/search?order=desc&sort=votes&site=stackoverflow&filter=withbody&pagesize=30';


url = url + '&q=' + q + '&tagged='+ tag + "&page="+page;

request({headers: {
    'Accept': 'application/json; charset=utf-8',
    'User-Agent': 'RandomHeader'
         },
     uri: url,
     method: 'GET',
     gzip: true
         },
function(err, res, body) {
if (err || res.statusCode !=200){
            reject (err || {statusCode: res.statusCode});
      }
     resolve(body);
          });
})}
Run Code Online (Sandbox Code Playgroud)

但是我想以适当的方式循环或拨打多个电话。任何帮助表示赞赏。

loops asynchronous get node.js stackexchange-api

6
推荐指数
1
解决办法
3244
查看次数