2012-02-04 41 views
5

爲了發佈實時更新到我的應用程序,Facebook需要對我的服務器執行發佈請求。如何測試Facebook實時更新

問題是,我的服務器是我的家用電腦,不能從互聯網公開尋址。使服務器生活實現這聽起來像它可能是一個痛苦...不能附加調試器,提琴手等......

那麼測試Http端點的最佳方法是什麼?整合測試模擬Facebook服務器?擺弄防火牆/ NAT以嘗試讓Facebook與我的家用電腦通話?

任何想法?

回答

6

您可以使用ngrok - https://ngrok.com/ - 免費(付費什麼,你可以)服務,不正是你需要的。 Localtunnel服務停止,開發者也推薦ngrok。

0

唯一的答案是獲得一個可以公開訪問的Web服務器,以便實時更新以便能夠回撥。

有很多免費的網絡主機,允許服務器端腳本。而且還有很多付費的webhosts。 Stackoverflow真的不是在哪裏/何時/爲什麼/多少用於虛擬主機的地方。

2

好的!我認爲NAT應該是最好的選擇,我不認爲它不起作用的原因。你應該嘗試一下。

4

在過去,我用LocalTunnel做到這一點。這是一個很好的SSH隧道封裝,它有效地爲localtunnel.com上的一個子域名指向本地主機上的一個端口。

因此,基本上,當你運行它,它會吐回一個外部訪問的子域名如xyz.localtunnel.com誰的端口80將指向您在本機上指定端口。

你可以找到它:http://progrium.com/localtunnel/

這是用於測試各種PubSubHubbub通訊訂閱資訊(如Facebook的)真的很棒。

0

不,你不能使用ngrok來模擬Facebook的實時更新,因爲你必須打電話給你的ngrok地址的Facebook服務器來驗證它(告訴我,如果你發現如何做到這一點:p)。 我使用openshift服務器實時接收facebook,然後將從facebook接收的evry json數據發佈到我的ngrok地址。所以這個過程是

  1. 設立openshift服務器收到Facebook的通知
  2. 的Facebook發送通知到您的openshift
  3. 您openshift發送DATAS(收到)您ngrok ADRESS

而且如果您必須在本地網站上收到Facebook通知(如www.website。dev/fb-notifications /),然後在你的localhost文件夾中創建一個接收openshift文章的腳本(我們稱之爲tunelscript.php)。該過程將是

  1. 設立openshift服務器收到Facebook的通知
  2. 的Facebook發送通知到您的openshift
  3. 您openshift通過您ngrok ADRESS發送DATAS(收到)您TUNEL腳本(perso。 ngrok.com/tunelscript.php)
  4. 從tunelscript接力DATAS到本地網站(tunelscript.php => www.website.dev/fb-notifications/)

這是Tuneling B-)

+1

普通的ngrok對此很好。在執行HTTP POST請求到https://graph.facebook.com/subscriptions進行設置時,您需要在'callback_url'字段中傳遞正確的http://yoursite.ngrok.com/callback URL。 – 2014-11-06 11:20:52