我的问题对我来说似乎很复杂(也许对你们来说不是),所以我会尽我所能去解释。我正在构建一个“应用程序”(不是一个本地应用程序,一个基于HTML的应用程序),它可以在不同的地方运行在iPad亭上,这样人们就可以登录Foursquare了。这意味着lat/long已经知道(固定位置来自列表)。我已经和Facebook合作过了,但Foursquare是个麻烦。
我尝试了大量不同的解决方案、教程和库(包括Epi-异步库),我找到的最好的一个是:http://blog.jambura.com/2011/07/23/implementing-foursquare-api-with-ease/。这就是我的代码所基于的。
话虽如此,我的应用程序流程如下:
Foursquare!"
!
现在,这里需要注意的是,使用Facebook,您可以通过PHP完成所有事情,而根本不需要使用CURL。这样我就可以传递一个名为$loc_id的GET变量,这样我就有了一种持久的方法来记住这个人在哪个位置,这允许我提取任何“签入文本”(对于Foursquare来说是“have”),以及我可能需要的任何lat/long,等等。
使用Foursquare,我尝试将$loc_id设置为会话变量,因为我必须使用POST,并且不能在我的应用程序和Foursquare之间携带任何基于URL的变量(就像我可以使用Facebook那样)。
不幸的是,我只能让Foursquare签入一半的工作。让我向您展示我正在使用的代码(请原谅我的格式设置,仍然试图掌握这个疯狂的系统的诀窍):
<a href="checkin-foursquare.php?loc_id=<?php echo $loc_id; ?>"> <--这就是启动process的原因
基本上,它将index.php -> checkin-foursquare.php . the -> foursquare.com ->回调-foursquare.php.the ->返回到checkin foursquare.php.the,以实际执行签入-> word-foursquare.php .the。
这个看起来对吗?
如果我转到“https://www.mydomain.com/path/to/app/checkin-foursquare.php?loc_id=SOME-CITY-HERE”,它将正确加载登录页面。当我登录时,它正确地打开了“用:连接您的foursquare帐户”屏幕。然而,一旦我到了这一点,点击“允许”按钮指向我回到foursquare -checkkin.php,然后打开相同的“连接您的foursquare帐户:”屏幕向上,一遍又一遍。我觉得我遗漏了一些标记或者什么东西,比如Foursquare没有正确授权(就像我没有提供正确的令牌?),但是我不知道出了什么问题。:(
我确实注意到,在环URL的末尾,附加了“error=redirect_uri_mismatch”。但是,我的Foursquare设置中的回调URL与fs_conn.php中的fs_conn.php相同.所以我不确定重定向URI有什么问题..?
我试着看这个,但是它没有多大帮助,它看起来像我正在做的事情,但是代码被分开了(例如,我不需要弹出窗口):Connecting with FourSquare API V2 using PHP
我知道我只有一半的CSRF保护,但我不知道如何正确地实现它与Foursquare。这就是导致我陷入循环的原因吗?
不管怎么说,我很抱歉这段时间太长了,我永远感激那些读了这么多书的人。我在这里读了那么多页,所以这一切都开始变得模糊起来。我已经使用这个网站很多年了,这是我第一次独自解决问题。失败。:(
发布于 2012-02-27 18:46:08
虽然没有得到官方的支持,但是有许多为foursquare API提供的社区贡献库。如果您正在使用PHP访问API,则应该考虑使用下面列出的一个PHP库:https://developer.foursquare.com/resources/libraries
https://stackoverflow.com/questions/9444257
复制相似问题