2009-07-07 28 views
2

我正在使用PyFacebook API首次編寫一個facebook桌面應用程序。截至目前爲止,因爲我一直在嘗試,我剛剛通過了密鑰與API密鑰,以Facebook的構造,像這樣一起:如何在使用python時不分發我的密鑰(facebook api)?

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

,然後登錄(fb.login()打開瀏覽器),沒有任何麻煩。但是現在,我想分發代碼,既然是python和opensource,我想有一些方法來保護我的密鑰。維基提到我可以使用服務器並在每次運行應用程序時使用服務器詢問我的密鑰(據我所知),但我不知道如何開始這樣做,以及應該如何完成。我從來沒有做過網絡編程,也不知道我可以在哪裏獲得服務器,以及如何讓服務器在這種情況下執行所需的任務,並且我不知道如何使用該服務器。我真的很感謝一些幫助!

謝謝。

回答

1

編輯:cmb的會話密鑰方法比下面介紹的代理更好。配置文件和GAE仍然適用。 /編輯

你可以採取幾種方法。如果您的代碼是開源的並且將被其他開發人員使用,您可以允許將密鑰設置在配置文件中。分發代碼時,在文件中放置一個虛擬鍵,並創建一些關於如何獲取和設置配置文件中的鍵的說明。

或者,如果你想要做服務器的方法,你將基本上創建一個代理服務器*,它將接受請求,添加密鑰,然後將它們轉發到Facebook。一個好的,免費的(除非/直到你的應用獲得大量用戶)基於Python的服務是Google App Engine。他們還有一大堆教程視頻可幫助您入門。

*例如,當調用myservice.appspot.com/getUserInfo?uid=12345時,您的服務將執行如下所示的操作。

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

理想情況下,您希望將它抽象出來,而不必明確實現您所做的每個FB API調用。

要記住的最後一件事是許多FB API調用不需要傳遞密鑰。

+0

它是開源的,我希望它可以被其他開發者使用。謝謝,我會看看谷歌應用引擎,讓你知道我得到了什麼! – fengshaun 2009-07-08 01:16:57

3

relevant page on the FB developer wiki推薦一個服務器組件,只保留您的密鑰並處理auth.getSession(),然後爲您的桌面應用程序提供會話密鑰。詳細信息請參閱該鏈接。

+0

維基頁面討論如何去做,而不是如何去做。真的,我想知道我該怎麼做! – fengshaun 2009-07-08 01:15:44

相關問題