【问题标题】:What kind of data does Yahoo! Messenger API return for requests?Yahoo! 提供什么样的数据? Messenger API 返回请求?
【发布时间】:2013-11-28 21:22:04
【问题描述】:

我查看了Yahoo! Messenger API 文档以了解如何获取访问令牌,然后发现:

调用如下所示:

https://login.yahoo.com/WSLogin/V1/get_auth_token?&login=username&passwd=mypassword&oauth_consumer_key=consumerkey

这个调用的结果是一个单一的值,RequestToken:

RequestToken=jUO3Qolu3AYGU1KtB9vUbxlnzfIiFRLP...

此令牌随后用于第二个请求,该请求将 PART 交换为 OAuth 访问令牌。您可以在此处找到有关获取访问令牌的标准方法的更多信息。

我猜这个结果是一个标准的结果,但我不知道这是一个什么样的数据。我的意思是它不是 XML 或 JSON。

我想把这样的字符串转成 JSON:

{
    RequestToken: "jU0..."
}

是否有任何标准转换器/解析器或者我必须构建一个?


另外,另一个请求可能如下所示:

Error=MissingParameters
ErrorDescription=Sorry, try again with all the required parameters.

我想把它转换成 JSON:

{
   Error: "MissingParameters",
   ErrorDescription: "Sorry, try again with all the required parameters."
}

构建这样的解析器会很容易,但我不想重新发明轮子。

【问题讨论】:

    标签: json node.js yahoo yahoo-api yahoo-messenger


    【解决方案1】:

    我决定编写自己的函数。如果有解析此类字符串的标准算法,请发表评论。

    /*
     *  Transform a string like this:
     *
     *  "Field1=123
     *  Field2=1234
     *  Field3=5"
     *
     *  into an object like this:
     *
     *  {
     *      "Field1": "123",
     *      "Field2": "1234",
     *      "Field3": "5",
     *  }
     *
     * */
    function parseResponse (str) {
    
        // validate the provided value
        if (typeof str !== "string") {
            throw new Error("Please provide a string as argument: " + 
                                                     JSON.stringify(str));
        }
    
        // split it into lines
        var lines = str.trim().split("\n");
    
        // create the object that will be returned
        var parsedObject = {};
    
        // for every line
        for (var i = 0; i < lines.length; ++i) {
            // split the line
            var splits = lines[i].split("=")
                // and get the field
                , field = splits[0]
                // and the value
                , value = splits[1];
    
            // finally set them in the parsed object
            parsedObject[field] = value;
        }
    
        // return the parsed object
        return parsedObject;
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多