google-apps-script - 使用 Google Apps 脚本在 Blogger 中创建帖子
问题描述
到目前为止,我还没有找到使用 Google Script 在 Blogger 中创建帖子的好代码。
在 API 控制台中,我获得了以下凭据:
- 客户编号
- 客户秘密
- API 密钥
此外,库已添加到 Google 脚本中:
- OAuth2 库 → MswhXl8fVhTFUH_Q3UOJbXvxhMjh3Sh48
- 博主库 → M2CuWgtxF1cPLI9mdRG5_9sh00DPSBbB3
我尝试了一些代码,这是当前的:
function create_blog_post() {
var payload =
{
"kind": "blogger#post",
"blog": {
"id": "12345........" // YOUR_BLOG_ID
},
"title": "New post",
"content": "With content..."
};
var headers = {
"Authorization": "Bearer " + getService().getAccessToken(), // ← THIS IS WRONG
"X-HTTP-Method-Override": "PATCH"
};
var options =
{
"method" : "post",
"headers" : { "Authorization" : "Bearer" + getService().getAccessToken()},
"contentType" : "application/json",
"payload" : '{ "kind": "blogger#post", "blog": { "id": "12345........" }, "title": "New post", "content": "With content..." }'
};
try {
var result = UrlFetchApp.fetch(
"https://www.googleapis.com/blogger/v3/blogs/12345......../posts", options);
Logger.log(result);
} catch (e) {Logger.log(e);}
}
请帮助我用最简单的代码解决这个问题。
解决方案
必读:
问题:
- 在同步服务器端使用异步客户端浏览器示例。
解决方案:
- 可以使用 Google 应用程序脚本访问 Blogger api
UrlFetchApp
- 可以使用提供的 oauth 令牌绕过完整的 OAuth 流程
ScriptApp
- 在 appsscript.json 清单文件中包含范围。
- 切换到标准 GCP 并启用 blogger api
片段:
function createBlogPost(){
var postUrl = "https://www.googleapis.com/blogger/v3/blogs/blogId/posts";
var blogId = /*"YOUR_BLOG_ID"*/;
postUrl = postUrl.replace("blogId",blogId);
var options = {
method:"post",
contentType:"application/json",
headers: { Authorization: "Bearer "+ ScriptApp.getOAuthToken()},
muteHttpExceptions: true,
payload: JSON.stringify({
title: "Hello from Apps Script!",
content: "This post is automatically created by Apps script"
})
}
var res = UrlFetchApp.fetch(postUrl, options).getContentText();
console.log(res);//or Logger.log(res)
}
清单范围:
"oauthScopes": [
"https://www.googleapis.com/auth/blogger",
"https://www.googleapis.com/auth/script.external_request"
]
推荐阅读
- python - ImportError:无法从“tensorflow.python.eager.context”导入名称“get_config” - ANN Visualizer
- android - Android Studio:可绘制文件夹添加子目录或创建新文件夹问题
- c++ - C++ Blackjack 代码只执行第一个 if 语句
- wordpress - 手机版图片居中
- kotlin - 购买完成后 UI 元素更新不起作用 - Google 计费客户端 4
- react-native - 从 react native 获取 API 调用中的 csrf 问题
- opencv - 图像中边界框的坐标
- php - 使用“AWS Cloudfront”CDN 配置时,“搜索”选项在“Wordpress”中不起作用
- javascript - 如何使用 axios 将数组发送到服务器
- python - Django 中的登录和身份验证