使用PHP与FourSquare API V2连接

| 我正在使用本指南来进行快速而肮脏的OAuth身份验证,因此我可以使用API​​。不幸的是,他的教程似乎参差不齐。在他的链接中找不到所引用的EpiOAuth.php文件,我不得不做一个Google搜索来查找副本。第一次运行index.php以获得令牌时,在index.php中的$ results = $ foursquareObj-> getAuthorizeUrl()行上收到了“缺少参数”错误。即使通过手动放置回调URL,我的令牌也将返回为“ h”:
Login Via Foursquare
string(1) \"h\" 
显然,这是不对的。我(他)怎么做错了?     
已邀请:

bab

        这不是您问题的直接答案,但是对于获取OAuth令牌来说很简单。我刚刚开始使用foursquare,这就是我所拥有的全部。它不执行任何类型的错误检查,但确实获得了OAuth令牌,该令牌可让您戳API。 本地主机/脚本/secrets.php
<?php  
  // insert your foursquare API keys
  define(\'CLIENT_ID\', \'YOUR_CLIENT_ID\');
  define(\'CLIENT_SECRET\', \'YOUR_CLIENT_SECRET\');
本地主机/脚本/4sq_Login.php
<?php
// Foursquare login stage 1, build url and redirect
  require_once(\'secrets.php\'); //defines CLIENT_ID

// build $url
  $url = \'https://foursquare.com/oauth2/authenticate\';
  $url .= \'?client_id=\'.CLIENT_ID;
  $url .= \'&response_type=code\';
  $url .= \'&redirect_uri=http://localhost/scripts/4sq_Callback.php\'; // change to your 4sq callback

// redirect
  header( \'Location: \'.$url ) ;
本地主机/脚本/4sq_Callback.php
<?php
// Foursquare login step 2, echo back $code from QUERY_STRING
  require_once(\'secrets.php\'); // defines CLIENT_ID & CLIENT_SECRET

// get $code from QUERY_STRING
  parse_str($_SERVER[\'QUERY_STRING\'], $query);
  $code = $query[\'code\'];

// build url
  $url = \'https://foursquare.com/oauth2/access_token\';
  $url .= \'?client_id=\'.CLIENT_ID;
  $url .= \'&client_secret=\'.CLIENT_SECRET;
  $url .= \'&grant_type=authorization_code\';
  $url .= \'&redirect_uri=http://localhost/scripts/4sq_Callback.php\'; //change to your 4sq callback
  $url .= \'&code=\'.$code;

// call to https://foursquare.com/oauth2/access_token with $code
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_URL, $url);
  $result = curl_exec($ch);
  curl_close($ch);

// $result value is json {access_token: ACCESS_TOKEN}
  $values = json_decode($result, true);
  $token = $values[\'access_token\'];

// set access_token cookie (if you wish)
  $expire = time()+2592000; // 30 days from now
  setcookie(\"foursquare_token\", $token, $expire, \'/\');

// crosswindow scripting to pass back $token
  echo(\'<script type=\"text/javascript\">\');
  echo(\'opener.set4sqKey(\"\'.$token.\'\");\');
  echo(\'self.close();\'); // close self
  echo(\'</script>\');
本地主机/index.htm
<!DOCTYPE HTML>
<html>
<head>
<title>FourSquare test page...</title>
<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">
<script type=\"text/javascript\">
<!--
var foursquareKey;

// Open foursquare login window.
function get4sqKey(){
  if(!foursquareKey){
    window.open(\'scripts/4sq_Login.php\', \'foursquareAuth\', \'width=960, height=548\');
  }
}

// called crosswindow by login window
function set4sqKey(key){
  foursquareKey = key;
  setTimeout(\'alert(\"Logged into Foursquare\");\', 1); // setTimeout makes alert non-blocking
}

// simple alert to display OAuth token
function showKey(){
  alert(foursquareKey);
}

// -->
</script>
</head>
<body>
<a href=\"javascript:get4sqKey();\">get4sqKey();</a> |
<a href=\"javascript:showKey();\">showKey();</a>
</body>
</html>
我不擅长解释,因此希望您能看到我在做什么,并且可以在必要的基础上继续做下去。 (由于PHP处理本地文件系统,因此实际上最好将secrets.php重定位到Web服务器路径之外的位置。以防万一:)     

要回复问题请先登录注册