标题可能暗示它,但我正在寻找一种方法让Facebook图形API在我的localhost上运行。如果我每次要测试时都需要将项目同步到服务器,那将是一件痛苦的事情,因为图表仅在在线时才有效。
有没有人对此问题有任何建议?
答案 0 :(得分:16)
如果您不需要离线访问(不可用,请参阅Jimmy Sawczuk的回答),但只需要您的网站能够从本地主机而不是真实域名访问Graph API,它应该是可能的
您需要做的是在Facebook上编辑网站应用的设置。将您的应用程序URL设置为“localhost”或您的计算机本地IP地址,我认为它应该可以正常工作。
答案 1 :(得分:4)
TL;博士
按照本文中描述的说明操作: How To: Local Facebook App Development
答案 2 :(得分:1)
除非您打算构建虚假的Facebook Graph API端点,否则您需要联机查询图API。
至于运行localhost,你会发现你需要一个端点来将用户重定向到安装,否则Facebook会抛出错误。您应该能够使用IP地址,但域名将为您节省很多麻烦。
当我开发时,我使用测试Facebook应用程序指向我的测试服务器,当我实时推送我的代码时,它使用基于真实域的真实应用程序。此外,我的测试服务器是一个通过Samba共享访问计算机上文件的VM。
希望这有帮助。
答案 3 :(得分:0)
奇怪,但您是否尝试修改本地DNS覆盖(/etc/hosts
或\WINDOWS\system32\drivers\etc\hosts
)以指向您在localhost上提供给Facebook应用的域名?那可能有用。
我打赌他们使用某种引用URL检查,如果他们这样做你可以访问浏览器中的URL,它将路由到localhost,它将使用正确的引用来访问图api,你应该是金
让我知道它是否有效。
答案 4 :(得分:0)
我正在运行rails 3.2.8,这也适用于我。但是在有山狮的Mac上,我发现最简单的方法是在localhost下为站点url的etc / hosts文件中的'somedomain.com:3000'创建一个别名,并在app域上创建端口#。
答案 5 :(得分:0)
行。我只花了一天的时间来完成这项工作。如果您无法访问API面板来编辑您的facebook api允许的域(并且您需要使用SSL来伪造它)。
这就是我的所作所为:
我在桌面上运行节点服务器。
您需要确保您的节点服务器已经指向您要在项目中运行/包含的任何文件。 (即如果你没有使用node开发,这个解决方案可能不会帮助你)。
确保已安装express和vhost。我使用命令行创建了一个服务器密钥和证书,如下所示:
openssl genrsa -out myKey.pem
openssl req -new -key key.pem -out csr.pem
openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out myCert.pem
rm csr.pem
我将这两个文件移动到我正在运行服务器实例的当前节点目录中。
我创建了这样的服务器实例:
var vhost = require('vhost'),
express = require('express'),
vhost: {
'default': 'www.mybigfakeserver.com' // this should match what your api key allows
},
require('https').createServer({
key: fs.readFileSync('myKey.pem'),
cert: fs.readFileSync('myCert.pem')
}, app).listen(443);
在您的主机文件中添加您需要伪造的内容。 e.g。
127.0.0.1 www.mybigfakeserver.com
这取自facebook api。您需要在HTML文件中添加它:
<script>
FB.init({
appId : 'PUT YOUR APP KEY HERE',
version : 'v2.0',
status: true
});
function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script'
, 'facebook-jssdk'));
</script>
启动节点服务器。
浏览至https://www.mybigfakeserver.com
您应该会看到您的网站。它现在应该能够伪造你的facebook api,以为你正在为你的应用程序创建的常规服务器上运行。
无需一直部署即可进行脸谱开发。