标题可能暗示它,但我正在寻找一种方法让Facebooks图形API在我的本地主机上工作。每次我想测试时,如果我需要将项目同步到服务器,这是一种痛苦,因为图表只在联机时才起作用。如何让Facebook的图形API在我的本地主机上工作?
有没有人对这个问题有任何建议?
标题可能暗示它,但我正在寻找一种方法让Facebooks图形API在我的本地主机上工作。每次我想测试时,如果我需要将项目同步到服务器,这是一种痛苦,因为图表只在联机时才起作用。如何让Facebook的图形API在我的本地主机上工作?
有没有人对这个问题有任何建议?
如果您不需要离线访问(不可用,请参阅Jimmy Sawczuk的回答),但只需要您的网站能够从本地主机访问Graph API而不是真实域名,则应该是可能。
你需要做的是编辑你的网站在Facebook上的应用程序的设置。将您的应用程序URL设置为'localhost'或您的计算机本地IP地址,我认为它应该可以工作。
这工作完美,非常感谢! – 2011-05-02 15:03:19
incase任何人遇到这个问题:我试图让它从我的本地主机mydomain:8887上的域中工作,当我尝试输入它作为URL Facebook说它不是一个有效的网址,解决这个我编辑虚拟主机(在httpd.conf中)将其更改为mydomain.com:8887,然后由Facebook接受它 – 2012-02-12 14:48:21
请注意,您可能需要将您的站点URL - AND - 应用程序域更改为“localhost” - 当然可能有在我写完这篇评论的时候改变了。 – 2017-10-03 19:43:35
除非你打算建立一个假的Facebook Graph API端点,那么是的,你需要在线查询图形API。
至于流失本地主机,你会发现你需要一个端点来重定向用户在安装或Facebook会引发错误。你应该可以使用IP地址,但域名会为你节省很多麻烦。
当我正在开发时,我使用了一个测试Facebook应用程序,该应用程序指向我的测试服务器,并且当我实时推送我的代码时,它使用基于真实域的真实应用程序。另外,我的测试服务器是一台虚拟机,它通过Samba共享访问我的计算机上的文件。
希望这会有所帮助。
您确定无法以任何方式配置xampp或mamp,我可以从本地主机进行测试吗? (这其实并不适合我,这是为了别人,他说上传到网络服务器目前不是一种选择,他基本上只想从用户那里获得名字和个人资料图片,并且他希望他的网站在本地运行)。 – 2011-05-02 14:49:14
btw:我知道有一种方法可以在asp.net中做到这一点,我只是不知道它是否也可以用于php。 这是链接到asp.net的方式:http://facebooksdk.com/docs/2010/10/how-to-set-up-local-development-environment-for-facebook-application-使用asp-net/ – 2011-05-02 14:50:12
也许我误解了你,但是你发布的404链接。 – 2011-05-02 14:52:24
奇怪,但你有没有尝试修改你的本地DNS覆盖(/etc/hosts
或\WINDOWS\system32\drivers\etc\hosts
)以指向你在本地主机上提供给你的Facebook应用的域名?这可能会起作用。
我敢打赌,他们使用某种引用URL检查,如果他们这样做,你可以访问浏览器中的URL,它将路由到本地主机,它会打右图引用的API,你应该金色。
让我知道它是否有效。
刚刚意识到:您指向的网址完全符合我所说的内容。 – Femi 2011-05-02 14:59:45
好了,现在问题就解决了。如果您在您的应用程序的developers.facebook.com网站上将website-url设置为您的本地主机,则它工作得很好。无论如何感谢您的评论。 – 2011-05-02 15:02:01
TL;博士
按照说明如何操作: How To: Local Facebook App Development
我正在运行rails 3.2.8,这也适用于我。然而,在一个有狮子山的mac上,我找到的最简单的方法是在localhost下在站点url的etc/hosts文件中为'somedomain.com:3000'创建一个别名,并在应用程序域中为port#创建一个别名。
好的。我只是花了一天时间的一部分来解决这个问题。如果您无法访问API面板来编辑您的Facebook API允许的域名(并且您需要使用SSL来伪造它)。
以下是我所做的:
我正在桌面上运行节点服务器。
您需要确保您的节点服务器已经指向您想要在项目中运行/包含的任何文件。 (即,如果您不使用节点进行开发,则此解决方案可能无法帮助您)。
确保您安装了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);
您的主机内部文件中添加任何你需要假了。例如
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,以为你在常规服务器上运行该应用程序是为了创建。
去做facebook开发,而不必一直部署。
不确定你的意思:你的意思是实现一个模拟的Facebook图形API或在本地主机上的HTTP服务器上运行你的Web应用程序并在线访问Facebook Graph API? – Femi 2011-05-02 14:44:09
我在我自己的电脑上工作,我有Xampp运行我的本地主机。我想通过图表API访问Facebook,而无需将项目上传到网络服务器。 – 2011-05-02 14:46:19
[在本地主机上运行Facebook应用程序]的可能的重复(http://stackoverflow.com/questions/5133075/running-facebook-application-on-localhost) – ifaour 2011-05-02 17:17:14