2012-07-24 136 views
2

只是想提一提,我真的是API开发的新手(概念,结构和最佳实践),我根本就不熟悉它,所以请原谅我要是你觉得它可怜愚蠢的问题是,我使用的是菲尔鲟鱼的REST API服务器,curl库,以及REST API客户端,这里是我的代码:如何在Codeigniter中的我自己的控制器中生成一个API密钥

在我的控制器应用程序/控制器/ make_key

function index(){ 
     $this->load->library('rest'); 
     $this->load->library('curl'); 
     $this->rest->put('https://www.myapplication.com/apifolder/key/X-API-KEY/FOO'); 
    } 

- 根本没有反应

其中apifolder /关键是我key.php的位置(从菲尔鲟鱼的默认实例):

,并请注意,我还可以通过地址栏试过这样:

https://www.myapplication.com/apifolder/key/X-API-KEY/FOO - 返回({“地位”:假的, “错误”: “无效的API密钥”})

https://www.myapplication.com/apifolder/key?X-API-KEY=FOO - 返回({ “地位”:假的, “错误”: “未知的方法。”})

,并试图颇多更多查询但似乎没有工作,我唯一的问题是...

如何使这个key.php工作?我很抱歉这样一个简单的头脑问题提前谢谢

+1

提供一个有效的API密钥时,并在您的API调用使用一个有效的方法。这应该记录在你有图书馆的地方附近。 – 2012-07-24 08:44:51

+0

这不是一个简单的头脑问题,几个人有这个,老实说菲尔可能需要更新他的文档有点..我提供了一个答案。 – gorelative 2012-07-24 13:16:03

+0

谢谢Robin yes FOO是放在我的key_table中的一个有效密钥,并且针对get()方法进行了测试,并且似乎工作正常,除非当我试图执行post方法时,它只返回一个错误, – user1547689 2012-07-24 14:03:23

回答

4

看到我自己接受的答案在我自己的qeuestion ...菲律宾文档不提供此信息。我不得不亲自进入图书馆。

我最终找到了403禁止是因为我没有提供API密钥生成密钥..
类abiguous菲尔的文档没有一个现有的API密钥要求,然后才能声明生成密钥.. 我只是创造了数据库表中的一个伪造的钥匙,并引用了调用/key/index?X-API-KEY=boguskey

CodeIgniter REST API Library Ajax PUT throwing 403 Forbidden

+0

已更新: 谢谢你Gorelative,我已经使用我创建到我的key_table伪造的密钥,并一直使用get方法,问题是当我试图做一个PUT/POST方法它总是返回一个({“状态” :假,“错误”:“无效的API密钥。”})作为回应, 你有一个想法,我怎么能做一个职位或放置方法来通过CURL(Codeigniter卷曲库)生成一个密钥?就像你通过$ ajax所做的一样, 非常感谢 – user1547689 2012-07-24 14:10:36

+1

你需要将密钥作为http头传递。或后期变种。或者,或者在URL中传递api密钥..就像我上面提到的那样,在api_keys数据库中使用'?X-API-KEY =' – gorelative 2012-07-24 14:14:05

+0

@gorelative有几个字段,我不知道目的是什么。 user_id,级别,ignore_limits,is_private_key,ip_addresses。你什么时候可以使用这些领域? – 2016-03-20 09:48:59

相关问题