SoundCloud Tutorials:Authentication
Published on November 24, 2012
This is Sound Cloud Tutorial Series. If you are first time seeing this post go back to SoundCloud Tutorials:Getting Started and read it. In previous lesson we have discussed what is SoundCloud, how to setup app on SoundCloud and how to get the SoundCloud PHP SDK.
1)Sound Cloud Tutorials:Getting Started 2)Sound Cloud Tutorials:Authentication 3a)Sound Cloud Tutorials:Uploading Audio Files 3b)Sound Cloud Tutorials:Uploading Audio Files(AJAX) 4)Sound Cloud Tutorials:Playing Audio Files In this tutorial we will learn how to Authenticate user when he first time comes to your web-Application. Now Make your Folder structure as below. In above SoundCloud1 is our root folder. lib - is our SoundCloud library contains SDK files. config.php - is The app configuration file. callback.php- is Our call back file. index.php - in it we will have out login url. **Note:**If you are using default SoundCloud SDK files and your on windows I suggest you to download the my version from above link. Other wise you will get The requested URL responded with HTTP code 0 error. I will write about this error more clearly in other post. Now lets got to the coding part. config.php
<?php
$clientId="Your-App-Client-ID";
$clientSecret="Your-APP-ClientSecret";
$callback="Your-APP-CallBack Page URl";
require_once 'lib/Soundcloud.php';
$soundcloud = new Services_Soundcloud($clientId, $clientSecret, $callback);
?>
In the previous tutorial of this series i suggested you to save the Client ID,Client Secret,Redirect URI for Authentication values in a note-pad. Just replace them in above code. Here we including Soundcloud lib. In the last line we creating $soundcloud obect so that we can use the same object for all other pages by including config.php file. index.php
<?php
include("config.php");
$authorizeUrl = $soundcloud->getAuthorizeUrl();
?>
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<a class="login"href="<?php echo $authorizeUrl; ?>">
<img src="img/btn-connect-sc-l.png" />
</a>
</body>
</html>
Here we generating authorizeUrl using the API. callback.php
<?php
include("config.php");
try {
$accessToken = $soundcloud->accessToken($_GET['code']);
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
exit($e->getMessage());
}
try {
$me = json_decode($soundcloud->get('me'), true);
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
exit($e->getMessage());
}
$user_data = array(
'access_token' => $accessToken['access_token'],
'id' => $me['id'],
'username' => $me['username'],
'name' => $me['full_name'],
'avatar' => $me['avatar_url']
);
echo 'Welcome'.$user_data['name'];
In this code first we obtaining $accessToken. We will use it in later chapters. In second try-catch block we will get the user data. See $user_data is an array which will store assces_taken value and other user data. In this example we simply displaying a Welcome message the user.
Note:When I test this script it works perfectly in local host. When iam testing it on server I got Parse error: syntax error, unexpected T_FUNCTION, expecting ’)’ in