【问题标题】:Insert post Blogger API failed in GAS在 GAS 中插入帖子 Blogger API 失败
【发布时间】:2013-03-14 19:02:25
【问题描述】:

大家好,我正在尝试使用 GAS 插入帖子,但失败了……你能告诉我我错了什么吗……提前谢谢……

这是我的代码

`function sendHttpPost() {
 var API_KEY = 'my api key';
 var scope = "http://www.blogger.com/feeds/";       
 var oAuthConfig = UrlFetchApp.addOAuthService("blogger");
 oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
 oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
 oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
 oAuthConfig.setConsumerKey("anonymous");
 oAuthConfig.setConsumerSecret("anonymous");
  var payload = 
    {
  "kind": "blogger#post",
  "blog": {
    "id": "486683248036684073"
  },
  "title": "A new post",
  "content": "With <b>exciting</b> content..."
}
  var options =
    {
      "contentType":"application/json",
      "oAuthServiceName" : "blogger",
      "oAuthUseToken" : "always",
      "method" : "POST",
      "payload" : payload
    };

  var respon = UrlFetchApp.fetch("https://www.googleapis.com/blogger/v3/blogs/486683248036684073/posts?key="+API_KEY, options);

这是错误信息

请求返回代码 400 失败。服务器响应:{“错误”:{ “错误”:[{“域”:“全局”,“原因”:“parseError”,“消息”: “解析错误”}],“代码”:400,“消息”:“解析错误”}}

【问题讨论】:

  • 错误很模糊,但我会先用一些简单的文本替换内容,比如一行。
  • @Srik thx 回复.. 请任何人帮助我..

标签: google-apps-script httprequest blogger blogspot


【解决方案1】:

我相信您在 oauth2 is required 时尝试使用 oauth1。 已经有关于 here 的未答复请求。 使用 Google 应用脚本实现 oauth 2 确实很痛苦,所以我尝试构建一个可以满足需求的库 (dioxygen library) - 它的工作方式有点像 oauth2 playground,但它不那么漂亮。 通过一些工作,您应该能够通过博客对其进行调整以适应您的需求。

【讨论】:

    【解决方案2】:

    我尝试了 Harold 的库,但在成功检索 OAuth 令牌后,我遇到了同样的错误。

    但是,当我通过 API Explorer 发出与脚本中相同的 JSON 请求时,它被处理了: https://developers.google.com/blogger/docs/3.0/reference/posts/insert

    [更新]

    我要把它拿回来。此代码有效。我只是替换了 payload 变量并将 JSON 请求直接放入 URL fetch options。因此,将 payload 变量传递给 options 变量存在一些问题。

    function testBlogger() {
    
      var payload =
          {
            "kind": "blogger#post",
            "blog": {
              "id": "YOUR_BLOG_ID"
            },
            "title": "New post",
            "content": "With content..."
          };
    
      var options =
          {
            "method" : "post",
            "headers" : { "Authorization" : "Bearer YOUR_ACTIVE_TOKEN"},
            "contentType" : "application/json",
            "payload" : '{ "kind": "blogger#post", "blog": { "id": "YOUR_BLOG_ID" }, "title": "New post", "content": "With content..." }'
          };
    
      try {
    
        var result = UrlFetchApp.fetch(
          "https://www.googleapis.com/blogger/v3/blogs/YOUR_BLOG_ID/posts",
          options);
    
        Logger.log(result);
    
      } catch (e) {
        Logger.log(e);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      相关资源
      最近更新 更多