擅长:python、mysql、java
<p>首先,我建议使用API的包装器。您在这里提出了很多问题,可以通过找到一个您喜欢的API包装器来简化这些问题。有一个用Python<a href="http://developer.github.com/v3/libraries/#python">here</a>编写的包装器列表。</p>
<p>至于您实际回答的问题,GitHub文档非常清楚您需要发送<a href="http://developer.github.com/v3/#authentication">Authorization header</a>。你的电话实际上是这样的:</p>
<pre><code>self.headers = {'Authorization': 'token %s' % self.api_token}
r = requests.post(url, headers=self.headers)
</code></pre>
<p>既然你好像在使用请求和类,我可以大胆地提出建议吗?假设您正在为API创建一个客户端。你可能会上这样的课:</p>
<pre><code>class GitHub(object):
def __init__(self, **config_options):
self.__dict__.update(**config_options)
self.session = requests.Session()
if hasattr(self, 'api_token'):
self.session.headers['Authorization'] = 'token %s' % self.api_token
elif hasattr(self, 'username') and hasattr(self, 'password'):
self.session.auth = (self.username, self.password)
def call_to_the_api(self, *args):
# do stuff with args
return self.session.post(url)
</code></pre>
<p>会话对象将为您处理身份验证(通过令牌或用户名和密码组合)。</p>
<p>另外,如果最终决定使用github3.py满足API包装器的需要,这里有一个标记。</p>