使用Github API添加新Gist

时间:2010-01-02 21:21:40

标签: javascript api air github

我正在Adobe Air制作一个小应用程序,我需要与Github Gist API进行交互。但是我有点卡住了。

如果您不熟悉Adobe Air,您仍然可以提供帮助,XMLHttpRequest javascript对象可以执行跨域请求,因为没有这样的域。所以这里没有Adobe Air的具体内容。

我被困在哪里,我认为我需要对自己进行身份验证然后进行POST。我只是不明白

2 个答案:

答案 0 :(得分:4)

您的脚本存在的问题是,虽然您正在发送POST方法,但您在URL中添加数据就好像它是GET一样。您只需将xmlhttp.send(NULL)更改为xmlhttp.send(data),其中data是您之前附加到gists网址的查询数据(包括文件和身份验证信息)。

作为一个简单的例子,这里是a bash script的摘录,创造了一个新的要点:

#!/usr/bin/env bash
if [ -z "$(git config github.token)" ]
then echo "warning: no api key found, to add follow instructions on github account page."
else echo "attempting to create a new gist using your github authentication..."; fi

SHA=$((curl https://gist.github.com/gists --include \
       --data login=$(git config github.user) \
       --data token=$(git config github.token) \
       --data action_button=private \
       --data 'file_ext[gistfile1]=txt' \
       --data 'file_contents[gistfile1]=Hello World, this is an example gist!' \
| perl -e 'for(<>){if(/^Location: https?:\/\/gist.github.com\/([0-9a-f]+)/){print $1}}')2>/dev/null)

echo "New example gist created at https://gist.github.com/$SHA"

答案 1 :(得分:1)

您不必对用户进行身份验证。

XMLHttpRequest只需要在请求中包含用户名和用户API令牌。

查看github here提供的示例ruby脚本,您只需提供以下属性:

  • 文件扩展程序
  • 文件名
  • 含量
  • 如果要点是私人的
  • 用户登录
  • 用户API令牌

pythonperl版本的脚本