当前位置: 首页 > 知识库问答 >
问题:

在尝试使用GraphQL API在Hashnode上创建帖子时,同时使用Python的请求库会出现错误

长孙景焕
2023-03-14

这是我一直使用的函数,通过there GraphQL API在Hashnode中创建一个帖子,参考本博客介绍Hashnode GraphQL API-public Beta

def post_to_hashnode():
    URL = "https://api.hashnode.com"
    headers = {
        'Authorization':HASHNODE_KEY,
        'Content-Type': 'application/json'
    }
    query = """{
        mutation {
             createStory(
                input: {
                    title: "The hashnode GraphQL API is here"
                    contentMarkdown: "<h1> Ahoy </h1>"
                    tags: [
                        {
                            _id: "56744721958ef13879b94c7e"
                            name: "General Programming"
                            slug: "programming"
                        }
                    ]
                }
            ) {
                message
                post{
                    title
                }
            }
        }
    }
    """
    response = requests.post(URL, json={'query':query}, headers=headers)
    return response.text

它抛出的错误是

def post_to_hashnode():
    URL = "https://api.hashnode.com"
    headers = {
        'Authorization':HASHNODE_KEY,
        'Content-Type': 'application/json'
    }

    body = json.dumps({
            "query": "mutation createStory($input: CreateStoryInput!){ createStory(input: $input){ title } }",
            "variables": {
            "input": {
                "title": "What are the e2e testing libraries you use ?",
                "contentMarkdown": "I was wondering what e2e testing libaries do you use",
                "tags": [
                {
                    "_id": "56744723958ef13879b9549b",
                    "slug": "testing",
                    "name": "Testing"
                }
                ],
                "coverImage": "https://cdn.hashnode.com/res/hashnode/image-dev/upload/v1562665620141/tc-h-erqF.jpeg",
            }
            }
        })
    response = requests.post(URL, data=body, headers=headers)
    return response.text

{“错误”:[{“消息”:“不能查询字段”标题“对类型”createPostOutput“。”,“位置”:[{“行”:1,“列”:78}],“扩展”:{“代码”:“graphql_validation_failed”}}]}

共有1个答案

曾元忠
2023-03-14

你是对的,需要重新安排一点。

import requests

def post_to_hashnode():
    URL = "https://api.hashnode.com"
    headers = {
        'Authorization': "YOUR_KEY_HERE",
        'Content-Type': 'application/json'
    }
    query = """
            mutation createStory($input: CreateStoryInput!) {
                createStory(input: $input) {
                    code
                    success
                    message
                }
            }
    """
    
    response = requests.post(URL, json={
        "query": query,
        "variables": {
            "input": {
                "title": "Test posts here",
                "contentMarkdown": "<h1> Ahoy </h1>",
                "tags": [
                    {
                        "_id": "56744721958ef13879b94c7e",
                        "name": "General Programming",
                        "slug": "programming"
                    }
                ]
            }
        }
    }, headers=headers)
    return response.text

test = post_to_hashnode()
print(test)
 类似资料:
  • 我正在阅读有关C中线程的教程并测试了以下代码: 我试图使用gcc和g编译此代码,但我总是遇到编译错误。 使用gcc-pthread thread_test.c: /tmp/ccmpQLyp。o: 在函数std::cout'thread_test.cpp: 你能帮忙吗?我必须做些什么才能让这段代码在Linux和Windows上运行吗?

  • 当试图将我的JSON映射到Spring MVC控制器中的Java对象时,我在Ajax请求上收到了400个错误请求。我已经检查了主题中的大部分相关问题,但仍然无法使其工作 Ajax调用和JSON: 我的控制器: 我的Java对象: 我使用Spring 4.2.5和Jackson: 我遇到的错误: HTTP错误400访问/ux/词汇表/createVocationary时出现问题。原因:糟糕的请求 此

  • 错误: Traceback(最近一次调用last):文件“E:\ mypython road \ src \ requeststest . py”,第1行,在导入请求文件“C:\ python 27 \ lib \ site-packages \ requests-2 . 3 . 0-py 2.7 . egg \ requests _ _ init _ _”中。py”,第58行,来自。在from中

  • 我试图创建一个请求python脚本,将添加到购物车,并最终结帐。我发了一个帖子请求(https://yeezysupply.com/cart/add.js)这是我在网络chrome开发者工具页面中找到的添加到购物车的endpoint。它有一个包含3个字典的json负载。Id是产品的变体Id,我不知道它是什么,所以我把它留空了,还有数量。当我执行Post请求时,我将数据作为参数输入。我收到一个400

  • ...在Xcode控制台,我得到 它演示了建立了连接并成功找到了服务器,但其他问题出现了。会很感激你的帮助。

  • 我正在尝试发出HTTP请求,但我目前可以从Firefox浏览器访问的网站响应503错误。代码本身非常简单。在网上搜索后,我添加了参数来请求,但也没有帮助。有人能解释一下如何摆脱这个503错误吗?顺便说一句,我想根据btc的价格制作自己的预警系统。