Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用python时,如何不分发我的密钥(facebook api)?_Python_Facebook - Fatal编程技术网

在使用python时,如何不分发我的密钥(facebook api)?

在使用python时,如何不分发我的密钥(facebook api)?,python,facebook,Python,Facebook,我第一次使用PyFacebook api编写facebook桌面应用程序。到目前为止,由于我一直在试验,我只是将密钥和api密钥一起传递给Facebook构造函数,如下所示: import facebook fb = facebook.Facebook("my_api_key", "my_secret_key") 然后登录(fb.login()打开浏览器),没有任何问题。但是现在,我想发布代码,因为它是python和开源的,我想有一些方法来保护我的密钥。wiki提到我可以使用服务器,每次我的应

我第一次使用PyFacebook api编写facebook桌面应用程序。到目前为止,由于我一直在试验,我只是将密钥和api密钥一起传递给Facebook构造函数,如下所示:

import facebook
fb = facebook.Facebook("my_api_key", "my_secret_key")
然后登录(
fb.login()
打开浏览器),没有任何问题。但是现在,我想发布代码,因为它是python和开源的,我想有一些方法来保护我的密钥。wiki提到我可以使用服务器,每次我的应用程序运行时(据我所知)都可以使用服务器请求我的密钥,但我不知道如何开始这样做,以及应该如何做。我从来没有做过网络编程,也不知道在哪里可以找到服务器,以及如何让服务器完成这种情况下需要的工作,我也不知道如何使用该服务器。我真的非常感谢你的帮助


谢谢。

编辑:cmb的会话密钥方法优于下面描述的代理。配置文件和GAE仍然适用/编辑

你可以采取一些方法。如果您的代码是开源的,并且将被其他开发人员使用,则可以允许在配置文件中设置密钥。分发代码时,在文件中放置一个伪密钥,并创建一些关于如何在配置文件中获取和设置密钥的说明

或者,如果你想使用服务器方法,你基本上要创建一个代理,它将接收请求,添加密钥,然后将它们转发到Facebook。一个好的、免费的(除非/直到你的应用程序有很多用户)基于Python的服务是。他们也有一系列的教程视频让你开始学习

*例如,当调用myservice.appspot.com/getUserInfo?uid=12345时,您的服务将执行如下操作

userinfo = fb.users.getInfo(self.request.get('uid')...)
理想情况下,您希望对其进行足够的抽象,从而不必显式地实现您所做的每个FBAPI调用


最后要记住的一点是,许多FB API调用不需要传递密钥。

建议使用一个服务器组件,只保留您的密钥并处理
auth.getSession()
,然后为您的桌面应用程序提供会话密钥。有关详细信息,请参见该链接。

wiki页面讨论的是做什么,而不是如何做。真的,我想知道我该怎么做!我开始理解它:)它是开源的,我希望它能被其他开发人员使用。谢谢,我会看看谷歌应用程序引擎,让你知道我得到了什么!