2016-11-28 108 views
1

我试图通过他们的API发布问题到bitbucket。如果我理解正确,似乎我可以使用基本身份验证路径而不使用OAuth。但是,当提出请求时,当打印(r.status_code)运行时,我在终端中收到400个代码。这个问题似乎是在JSON(我怀疑)或认证。通过Python请求发布到Bitbucket

我的Django项目运行这一点,我的代码如下:

views.py

if request.method == "POST": 
    getUser = request.user 
    form = IssueForm(request.POST) 

    if form.is_valid(): 

     data = {"priority": "major", "title": "title", "kind": "bug", "content": "content"} 

     headers = {'Content-Type': 'application/json',} 
     r = requests.post('https://api.bitbucket.org/1.0/repositories/{my_username}/{my_repo}/issues/', headers=headers, json=data, auth=({username},{password})) 
     print(r.status_code) 

     return HttpResponseRedirect("/main/") 

    else: 
     form = IssueForm() 


    context = { 
     "form": form, 
    } 

    return render(request, "issue_form.html", context) 

可能基本身份验证是不允许张贴问题,而是OAuth是必要的?但是,我还没有找到任何已经表明的文件。或者也许有一种方法可以通过Django中的python请求实现OAuth1?

相应地填写用户名,回购和密码。任何帮助将非常感激。

EDIT

接过AUTH =({用户名},{密码})并得到了作为相对于一个400错误与他们401。好像是与所述数据中的问题,但我我不太清楚数据的格式有什么问题。感谢任何进一步的帮助。

+0

权威性问题将是401,但是400如果输入的数据根据​​预期是无效的,你会得到https://http.cat/400 ...检查*数据*,有什么不对或缺失。 – rebeling

+0

打印r.text可能会给你详细信息 – rebeling

+0

oha,在此文本的instagram上获得400:缺少client_id或access_token URL参数。 – rebeling

回答

0

阅读总是有帮助,孩子们。我能够安装BitBucket-API,并在此文档的帮助下使用它来发布我的问题。

https://media.readthedocs.org/pdf/bitbucket-api/latest/bitbucket-api.pdf

代码结束看起来像: bb = Bitbucket('username', 'password', repo_name_or_slug="REPOSLUG") success, result = bb.issue.create( title=u'title', content=u'content', responsible=bb.username, status=u'new', kind=u'kind')

+0

这解决了与不同库存在的问题,但不提供解决方案来发布'requests'模块的问题。 – gruentee