gpt4 book ai didi

php - 使用 PHP 连接 FourSquare API V2

转载 作者:可可西里 更新时间:2023-11-01 00:06:57 25 4
gpt4 key购买 nike

我正在使用 this guide获得快速而肮脏的 OAuth 身份验证,以便我可以使用 API。不幸的是,他的教程似乎参差不齐。在他的链接中找不到引用的 EpiOAuth.php 文件,我必须进行谷歌搜索才能找到副本。第一次运行 index.php 获取我的 token 时,我在 index.php 的 $results = $foursquareObj->getAuthorizeUrl() 行收到“缺少参数”错误。即使通过手动放置我的回调 URL,我的 token 也会返回为“h”:

Login Via Foursquare
string(1) "h"

这显然是不对的。我(他)怎么会做错?

最佳答案

这不是您问题的直接答案,但对于获取 OAuth token 来说非常直接。我刚刚开始使用 foursquare,这就是我所拥有的一切。它不执行任何类型的错误检查,但它确实获得了一个 OAuth token ,允许您访问 API。

localhost/scripts/secrets.php

<?php  
// insert your foursquare API keys
define('CLIENT_ID', 'YOUR_CLIENT_ID');
define('CLIENT_SECRET', 'YOUR_CLIENT_SECRET');

localhost/scripts/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 ) ;

localhost/scripts/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>');

localhost/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 服务器路径之外的位置。以防万一:)

关于php - 使用 PHP 连接 FourSquare API V2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6159809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com