I'm having an odd problem with the API. I wrote a script which was working fine in early August, but when I returned to using it I now get a 500 error when generating a token. If I make a new app, it will generate a token fine once but any repeated executions will return a 500. I haven't changed anything, and it was worked fine before. Help?
NB doesn't seem to have a good way to post code, but here's the blog post I wrote a few weeks ago with my code: http://www.richiroutreach.com/blog/working-php-and-nationbuilder-api
// OAuth 2 Library
require_once ROOT . '/OAuth2/Client.php';
require_once ROOT . '/OAuth2/GrantType/IGrantType.php';
require_once ROOT . '/OAuth2/GrantType/AuthorizationCode.php';
// Client ID and Secret from Nation Builder
const CLIENT_ID = 'id';
const CLIENT_SECRET = 'secret';
// Constants we need to talk to Nation Builder
const REDIRECT_URI = "http://example.com/create_user.php";
const AUTHORIZATION_ENDPOINT = "https://xxx.nationbuilder.com/oauth/authorize";
const TOKEN_ENDPOINT = "https://xxx.nationbuilder.com/oauth/token";
const REQUEST_ENDPOINT = "https://xxx.nationbuilder.com/api/v1";
// Start a new OAuth2 Client
$client = new OAuth2\Client(CLIENT_ID, CLIENT_SECRET);
// Check if we have an authorize code, if not obtain one
if (!isset($_GET['code'])) {
// Generate the URL we need to go to get the token
$auth_url = $client->getAuthenticationUrl(AUTHORIZATION_ENDPOINT, REDIRECT_URI);
// Redirect to that URL (which then sends us back to the REDIRECT_URI with a code, IE this page)
header('Location: ' . $auth_url);
// End this process
die('Redirect');
}
// We have a code, so generate the parameters we need to get an access token
$params = array('code' => $_GET['code'], 'redirect_uri' => REDIRECT_URI);
// Obtain our access token
$response = $client->getAccessToken(TOKEN_ENDPOINT, 'authorization_code', $params);
Do you like this suggestion?
Showing 2 reactions
Sign in with