如何在Meteor.http.call中包含用户代理信息? MediaWiki需要它

时间:2012-12-03 01:57:02

标签: meteor

每当我调用服务器上的下面的方法(CoffeeScript)时,我得到“脚本应该使用带有联系信息的信息性用户代理字符串,或者它们可能被IP阻止,而无需通知”来自维基百科。如何在通话中包含用户代理信息?或者它是否从Meteor Accounts(我还没有使用)获取此信息?谢谢你的帮助...

Meteor.methods
  wpSearch: (queryStr) ->
    result = Meteor.http.call "GET", "http://en.wikipedia.org/w/api.php",
      params:
        action: "query"
        list: "search"
        format: "json"
        srwhat: "text"
        srsearch: queryStr

2 个答案:

答案 0 :(得分:10)

为澄清未来访问者的上一个答案,Meteor.http.get的语法如下:

result = Meteor.http.get("https://api.github.com/user", {
   headers: {
      "User-Agent": "Meteor/1.0"
   },
   params: {
      access_token: accessToken
   } 
});

注意header选项后面的花括号和后面分隔header和params选项的逗号(没有这些东西就是语法错误)。这个示例是在onCreateUser()回调期间自定义loginButtons的EventedMind方法的一部分。

答案 1 :(得分:9)

只需在headers参数中设置User-Agent(参见http://docs.meteor.com/#meteor_http

Meteor.methods
  wpSearch: (queryStr) ->
    result = Meteor.http.call "GET", "http://en.wikipedia.org/w/api.php",
      headers:
        "User-Agent": "Meteor/1.0"
      params:
        action: "query"
        list: "search"
        format: "json"
        srwhat: "text"
        srsearch: queryStr