代码之家  ›  专栏  ›  技术社区  ›  fengshaun

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

  •  2
  • fengshaun  · 技术社区  · 15 年前

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

    import facebook
    fb = facebook.Facebook("my_api_key", "my_secret_key")
    

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

    非常感谢。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Chris Boyle    15 年前

    relevant page on the FB developer wiki 推荐一个只保存您的密钥和句柄的服务器组件 auth.getSession() ,然后为桌面应用程序提供会话密钥。有关详细信息,请参见该链接。

        2
  •  1
  •   steamer25    15 年前

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

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

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

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

    userinfo = fb.users.getInfo(self.request.get('uid')...)
    

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