function run() { $consumer = getConsumer(); // Complete the authentication process using the server's // response. $return_to = getReturnTo(); $response = $consumer->complete($return_to); // Check the response status. if ($response->status == Auth_OpenID_CANCEL) { // This means the authentication was cancelled. $msg = 'Verification cancelled.'; } else { if ($response->status == Auth_OpenID_FAILURE) { // Authentication failed; display the error message.d $msg = "OpenID authentication failed: " . $response->message; } else { if ($response->status == Auth_OpenID_SUCCESS) { // This means the authentication succeeded; extract the // identity URL and Simple Registration data (if it was // returned). $openid = $response->getDisplayIdentifier(); $esc_identity = escape($openid); $success = sprintf('You have successfully verified ' . '<a href="%s">%s</a> as your identity.<br><br>Here\'s your MySpace profile data fetched using the MySpace REST APIs', $esc_identity, $esc_identity); if ($response->endpoint->canonicalID) { $escaped_canonicalID = escape($response->endpoint->canonicalID); $success .= ' (XRI CanonicalID: ' . $escaped_canonicalID . ') '; } $oauth_resp = Auth_OpenID_OAuthResponse::fromSuccessResponse($response); $authorized_request_token = $oauth_resp->authorized_request_token; //1.0A OAuth Spec, we will need this to get an access token $authorized_verifier = $oauth_resp->authorized_verifier; if ($authorized_request_token) { $ms = new MySpace(CONSUMER_KEY, CONSUMER_SECRET, $authorized_request_token->key, $authorized_request_token->secret, $authorized_verifier); $access_token = $ms->getAccessToken(); $ms = new MySpace(CONSUMER_KEY, CONSUMER_SECRET, $access_token->key, $access_token->secret); $userid = $ms->getCurrentUserId(); // Use the userID (fetched in the previous step) to get user's profile, friends and other info $profile_data = $ms->getProfile($userid); $friends_data = $ms->getFriends($userid); $ms->updateStatus($userid, 'testing sdk'); // Access $profile_data and $friend_data inside of index.php (via the include below) // to display the profile/friends data } } } } include 'index.php'; }
$consumer = new OAuthConsumer($ms_key, $ms_secret); $signature = $sigMethod->build_signature($req, $consumer); print "<br>Base string = " . $req . base_string; print "<br>Built Signature = " . $signature . ""; print "<br>Passed in Signature = " . $_GET['oauth_signature'] . "<br>"; if (strcmp($_GET['oauth_signature'], $signature) != 0) { print "Signatures don't match! Exiting.<br>"; } else { print "Signatures match!"; // Send notification $userId = @$_GET['opensocial_viewer_id']; $ms = new MySpace($ms_key, $ms_secret, null, null, false); $templateParameters = array('content' => 'Test notification content from php sdk', 'button0_surface' => 'canvas', 'button0_label' => 'Go To App Canvas', 'button1_surface' => 'appProfile', 'button1_label' => 'Go To App Profile'); $rc = $ms->sendNotification('129910', '454304609,28568917', $templateParameters, 'http://api.myspace.com/v1/users/296768296'); echo '<br><br>sendNotification returned ' . $rc; $profileInfo = $ms->getProfile($userId); displayProfileInfo($profileInfo); $albumInfo = $ms->getAlbumInfo($userId, "817520"); displayAlbumInfo($albumInfo); $appData = $ms->getGlobalAppData(); displayObject($appData, "appData"); $ms->putGlobalAppData(array('animal' => 'giraffe', 'plant' => 'rose', 'mineral' => 'sandstone')); sleep(3); $appData = $ms->getGlobalAppData(); displayObject($appData, "appData"); $appData = $ms->getGlobalAppData('animal;plant'); displayObject($appData, "appData for only animal and plant"); $ms->clearGlobalAppData('animal;mineral'); sleep(3); $appData = $ms->getGlobalAppData(); displayObject($appData, "appData");
function main() { $ms_key = CONSUMER_KEY; //we get this from config.MySpace.php $ms_secret = CONSUMER_SECRET; ob_start(); //starts output buffering session_start(); if (@$_GET['f'] == 'start') { // get a request token + secret from MySpace and redirect to the authorization page // $ms = new MySpace($ms_key, $ms_secret); $tok = $ms->getRequestToken("http://localhost/~babar/myspace/myspaceid-sdk/trunk/samples/myspaceid-oauth/index.php?f=callback"); /* if (!isset($tok['oauth_token']) || !is_string($tok['oauth_token']) || !isset($tok['oauth_token_secret']) || !is_string($tok['oauth_token_secret'])) { echo "ERROR! MySpace::getRequestToken() returned an invalid response. Giving up."; exit; } */ $_SESSION['auth_state'] = "start"; $_SESSION['request_token'] = $token = $tok['oauth_token']; $_SESSION['request_secret'] = $tok['oauth_token_secret']; $_SESSION['callback_confirmed'] = $tok['oauth_callback_confirmed']; header("Location: " . $ms->getAuthorizeURL($token)); } else { if (@$_GET['f'] == 'callback') { // the user has authorized us at MySpace, so now we can pick up our access token + secret // if (@$_SESSION['auth_state'] != "start") { echo "Out of sequence."; exit; } $oauth_verifier = @$_GET['oauth_verifier']; if (!isset($oauth_verifier)) { echo "ERROR! MySpace::getAccessToken() returned an invalid response. Giving up."; exit; } // if ($_GET['oauth_token'] != $_SESSION['request_token']) { // echo "Token mismatch."; // exit; // } $ms = new MySpace($ms_key, $ms_secret, $_SESSION['request_token'], $_SESSION['request_secret'], true, $oauth_verifier); $tok = $ms->getAccessToken(); if (!is_string($tok->key) || !is_string($tok->secret)) { error_log("Bad token from MySpace::getAccessToken(): " . var_export($tok, TRUE)); echo "ERROR! MySpace::getAccessToken() returned an invalid response. Giving up."; exit; } $_SESSION['access_token'] = $tok->key; $_SESSION['access_secret'] = $tok->secret; $_SESSION['auth_state'] = "done"; header("Location: " . $_SERVER['SCRIPT_NAME']); } else { if (@$_SESSION['auth_state'] == 'done') { // we have our access token + secret, so now we can actually *use* the api // $ms = new MySpace($ms_key, $ms_secret, $_SESSION['access_token'], $_SESSION['access_secret']); // First get the user id. $userid = $ms->getCurrentUserId(); // Use the userID (fetched in the previous step) to get user's profile, friends and other info $profile_data = $ms->getProfile($userid); displayProfileInfo($profile_data); $friends_data = $ms->getFriends($userid); displayFriendsInfo($friends_data); $albums = $ms->getAlbums($userid); $albumid = $albums->albums[0]->id; $albumInfo = $ms->getAlbumInfo($userid, $albumid); $album = $ms->getAlbum($userid, $albumid); $firstPhoto = $ms->getAlbumPhoto($userid, $albumid, $album->photos[0]->id); displayAlbum($albumInfo, $firstPhoto->imageUri); $friendStatus = $ms->getFriendsStatus($userid); displayObject($friendStatus, '$friendStatus'); $indicators = $ms->getIndicators($userid); displayObject($indicators, '$indicators'); $statusHistory = $ms->getStatusHistory($userid); displayObject($statusHistory, '$statusHistory'); //$ms->updateStatus($userid, 'Updating from php sdk'); // Test put and get app data $ms->putAppData($userid, array('location' => 'usa', 'interests' => 'tennis, golf', 'age' => '21')); $appData = $ms->getAppData($userid, 'interests;location'); displayObject($appData, '$appData for interests and location only'); $appData = $ms->getAppData($userid); displayObject($appData, '$appData for all parameters'); // Test clear app data $ms->clearAppData($userid, 'location;age'); sleep(3); $appData = $ms->getAppData($userid); displayObject($appData, '$appData after clearing'); // Test get friends' app data $appData = $ms->getUserFriendsAppData($userid); displayObject($appData, '$appData for friends'); // Test Poco get user $pocoPerson = $ms->getPersonPoco('movies'); displayObject($pocoPerson, '$pocoPerson'); // Test Poco get friends $pocoFriends = $ms->getFriendsPoco(); displayObject($pocoFriends, '$pocoPerson'); } else { // not authenticated yet, so give a link to use to start authentication. ?> <p><a href="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> ?f=start">Click here to authenticate with MySpace</a></p><?php } } } }
function run() { loginRequired(); $userid = $_SESSION['userID']; $ms = new MySpace(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['access_token_key'], $_SESSION['access_token_secret']); // Use the userID (fetched in the previous step) to get user's profile, friends and other info $profile_data = $ms->getProfile($userid); $friends_data = $ms->getFriends($userid); $activities_data = $ms->getActivities_ATOM($userid); $friendsActivities_data = $ms->getFriendsActivities_ATOM($userid); //43508565 $test2 = ''; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>MySpaceID Hybrid Example <?php echo isset($profile_data) ? $profile_data->basicprofile->name : 'not logged in'; ?> profile</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="stylesheet" type="text/css" href="static/base.css"> <!-- YUI Combo CSS + JS files: --> <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?2.6.0/build/tabview/assets/skins/sam/tabview.css"> <script type="text/javascript" src="http://yui.yahooapis.com/combo?2.6.0/build/yahoo-dom-event/yahoo-dom-event.js&2.6.0/build/imageloader/imageloader-min.js&2.6.0/build/element/element-beta-min.js&2.6.0/build/tabview/tabview-min.js"></script> <style> .activity{ background:#abc; border:1px #fff solid; } </style> </head> <body class="yui-skin-sam"> <h2>profile page</h2> <?php if (isset($profile_data)) { echo <<<EOL \t\t<div id="MySpaceTabs" class="yui-navset"> \t\t <ul class="yui-nav"> \t\t <li id='profileTab' class="selected"><a href="#tab1"><em>Profile</em></a></li> \t\t <li id='friendsTab'><a href="#tab2"><em>Friends</em></a></li> \t\t <li id='activitiesTab'><a href="#tab3"><em>Activities</em></a></li> \t\t </ul> \t\t <div class="yui-content"> \t\t <div id='profileTabContent'> \t\t \t<p><img src="{$profile_data->basicprofile->image}" /></p> \t\t <p>Profile URL : <a href="{$profile_data->basicprofile->webUri}"> {$profile_data->basicprofile->webUri}</a><p> \t\t <p>Name: <strong> {$profile_data->basicprofile->name} </strong> </p> \t\t <p>Gender: <strong> {$profile_data->gender} </strong> </p> \t\t <p>Age: <strong> {$profile_data->age} </strong> </p> \t\t <p>Marital Status: <strong> {$profile_data->maritalstatus} </strong> </p> \t\t <p>City: <strong> {$profile_data->city} </strong> </p> \t\t <p>Postal Code: <strong> {$profile_data->postalcode} </strong> </p> \t\t <p>Region: <strong> {$profile_data->region} </strong> </p> \t\t <p>Country: <strong> {$profile_data->country} </strong> </p> \t\t </div> EOL; } ?> <?php if (isset($friends_data)) { // Build up the HTML that represent the content that goes into the // Friends Tab // Then insert the content block via $friendsContent below // $onlineFriends_data = $ms->getFriends($userid, null, null, 'online', 'online'); $friendsContent = ""; foreach ($friends_data->Friends as $friend) { $friendsContent .= "<a href='{$friend->webUri}'>"; $friendsContent .= "<img id='{$friend->name}' title='{$friend->name}' border='0'></a>"; } echo <<<EOL \t\t\t\t<div id='friendsTabContent'> \t\t\t\t {$friendsContent} \t\t </div> EOL; } ?> <?php if (isset($friendsActivities_data)) { // Build up the HTML that represent the content that goes into the // Friends Tab // Then insert the content block via $friendsContent below // echo "<div id='activitiesTabContent'>"; $activitiesContent = $friendsActivities_data; //$title = mb_convert_encoding ($xml->entry[32]->title[0],'UTF-8',"UTF-8, ASCII, ISO-8859-1, EUC-JP, SJIS, JIS") ; print '<span class="entry_title">'; print $title; //$xml->entry[32]->title[0]; print '</span>'; print '<br/><span><strong>RAW:: </strong>' . mb_convert_encoding('???? ??? ��� ??????? is now friends with Sue Cho', 'utf-8', "UTF-8, ASCII, ISO-8859-1, EUC-JP, SJIS, JIS") . '</span>'; print '<br /><span class="entry_title"><strong>' . mb_detect_encoding($title . 'a', " UTF-8, ASCII, ISO-8859-1, UTF-16, UTF-32", true) . '</strong></span>'; print '<br /><span class="entry_title"><strong>' . mb_http_output() . '</strong></span>'; $xml = $friendsActivities_data; $xml->registerXPathNamespace('atom', 'http://www.w3.org/2005/Atom'); $xml->registerXPathNamespace('activity', 'http://activitystrea.ms/schema/1.0/'); $xml->registerXPathNamespace('xCal', 'urn:ietf:params:xml:ns:xcal'); $xml->registerXPathNamespace('atom', 'http://www.w3.org/2005/Atom'); $songlist_xml = $xml->xpath('atom:entry/atom:category[@label="SongUpload" or @label="ProfileSongAdd"]/ancestor::atom:entry'); //$songlist_xml = $xml->xpath('atom:entry/atom:category[@label="SongUpload" or @label="ProfileSongAdd"]/..'); $band_data = $ms->getFriendsActivities_ATOM($userid, null, null, 'PersonalBandShowUpdate'); //43508565 $band_data->registerXPathNamespace('atom', 'http://www.w3.org/2005/Atom'); $band_data->registerXPathNamespace('activity', 'http://activitystrea.ms/schema/1.0/'); $band_data->registerXPathNamespace('xCal', 'urn:ietf:params:xml:ns:xcal'); //$bandShows_xml = $band_data->xpath('atom:entry/atom:category[@label="PersonalBandShowUpdate"]/..'); $bandShows_xml = $band_data->xpath('//xCal:location/ancestor::atom:entry'); foreach ($bandShows_xml as $bandShow) { $bandShow_activity = $bandShow->xpath('activity:object'); $bandShow_activity = $bandShow_activity[0]; $bandShow_title = (string) $bandShow_activity->title; $bandShow_link = (string) $bandShow_activity->link['href']; $bandShow_summary = (string) $bandShow_activity->vevent->summary; $bandShow_location = (string) $bandShow_activity->vevent->location; //$bandShow_dateStart = new DateTime( (string)$bandShow_activity->vevent-dsStart); //, 'Y-m-d\TH:i:s\Z', '%Y-%m-%dTH:%M:%SZ'); //2009-03-21T03:00:00Z $break = ''; } echo "<h1><span class='display-name'>{$profile_data->basicprofile->name}'s Activites</span></h1>"; echo '<ul id="activities">'; foreach ($songlist_xml as $song_entry) { echo '<li>' . $song_entry->content->asXML() . '</li>'; } echo '</ul>'; foreach ($xml->xpath('atom:entry[category/@label="BlogAdd"]') as $entry) { $children = ''; $content = ''; echo "\n<ul class='activities'>\n"; switch ((string) $entry->category['label'][0]) { case 'EventAttending': echo '<li class="activity">'; $entry->registerXPathNamespace('atom', 'http://www.w3.org/2005/Atom'); $iconlink = $entry->xpath('atom:id'); $iconlink = $entry->xpath('atom:link[@rel="icon" and @href]'); print "<img src='" . $iconlink[0]['href'] . "' />"; $children = $entry->content->div->children(); foreach ($children as $child) { $content = $child->asXML(); echo "\n" . $content . ""; } echo '</li><!-- class="activity" -->'; break; case 'EventPosting': echo '<li class="activity">'; $children = $entry->content->div->children(); foreach ($children as $child) { $content = $child->asXML(); echo "\n" . $content . ""; } echo '</li><!-- class="activity" -->'; break; case 'ProfileSongAdd': echo '<li class="activity">'; $children = $entry->content->div->children(); foreach ($children as $child) { $content = $child->asXML(); echo "\n" . $content . ""; } echo '</li><!-- class="activity" -->'; break; case 'FriendAdd': break; case 'FriendCategoryAdd': break; case 'ForumPosted': break; case 'JoinedGroup': break; case 'ForumTopicReply': break; case 'ProfileVideoUpdate': break; case 'FavoriteVideoAdd': break; case 'PhotoAdd': break; case 'MobilePhotoUpload': break; case 'PhotoTagged': break; case 'BlogAdd': break; default: echo '<li class="activity">'; $children = $entry->content->div->children(); foreach ($children as $child) { $content = $child->asXML(); echo "\n" . $content . ""; } echo '</li><!-- class="activity" -->'; } echo "\n</ul>"; } echo "</div>"; } ?> <?php if (isset($friends_data)) { // We build up a string that represents the image loader code // for each of the friend images. // We then insert that string below by referencing $imageLoaderCode // $imageLoaderCode = ""; foreach ($friends_data->Friends as $friend) { $imageLoaderCode .= "tabTwoImageGroup.registerSrcImage('{$friend->name}', '{$friend->image}');"; } echo <<<EOL </div> \t\t</div> \t\t<script type="text/javascript"> \t\t\tvar myTabs = new YAHOO.widget.TabView("MySpaceTabs"); \t\t\t// Friends Tab Image Loader \t\t\tvar tabTwoImageGroup = new YAHOO.util.ImageLoader.group('friendsTab', 'mouseover'); \t\t\t{$imageLoaderCode} \t\t\ttabTwoImageGroup.addTrigger('friendsTab', 'focus'); \t\t\ttabTwoImageGroup.name = 'tab_two_group'; \t\t</script> EOL; } ?> </body> </html> <?php }
function run() { $consumer = getConsumer(); // Complete the authentication process using the server's // response. $return_to = getReturnTo(); $response = $consumer->complete($return_to); // Check the response status. if ($response->status == Auth_OpenID_CANCEL) { // This means the authentication was cancelled. $msg = 'Verification cancelled.'; } else { if ($response->status == Auth_OpenID_FAILURE) { // Authentication failed; display the error message.d $msg = "OpenID authentication failed: " . $response->message; } else { if ($response->status == Auth_OpenID_SUCCESS) { // This means the authentication succeeded; extract the // identity URL and Simple Registration data (if it was // returned). $openid = $response->getDisplayIdentifier(); $esc_identity = escape($openid); $success = sprintf('You have successfully verified ' . '<a href="%s">%s</a> as your identity.<br><br>Here\'s your MySpace profile data fetched using the MySpace REST APIs', $esc_identity, $esc_identity); if ($response->endpoint->canonicalID) { $escaped_canonicalID = escape($response->endpoint->canonicalID); $success .= ' (XRI CanonicalID: ' . $escaped_canonicalID . ') '; } $oauth_resp = Auth_OpenID_OAuthResponse::fromSuccessResponse($response); $authorized_request_token = $oauth_resp->authorized_request_token; $authorized_verifier = $oauth_resp->authorized_verifier; if ($authorized_request_token) { $ms = new MySpace(CONSUMER_KEY, CONSUMER_SECRET, $authorized_request_token->key, $authorized_request_token->secret, $authorized_verifier); $access_token = $ms->getAccessToken(); $ms = new MySpace(CONSUMER_KEY, CONSUMER_SECRET, $access_token->key, $access_token->secret); $userid = $ms->getCurrentUserId(); $_SESSION['userID'] = $userid; $_SESSION['access_token_key'] = $access_token->key; $_SESSION['access_token_secret'] = $access_token->secret; // Use the userID (fetched in the previous step) to get user's profile, friends and other info $profile_data = $ms->getProfile($userid); $friends_data = $ms->getFriends($userid); // Access $profile_data and $friend_data inside of index.php (via the include below) // to display the profile/friends data } } } } ?> <html> <head><title>MySpaceID Hybrid Example</title></head> <link rel="stylesheet" type="text/css" href="static/base.css"> <!-- YUI Combo CSS + JS files: --> <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?2.6.0/build/tabview/assets/skins/sam/tabview.css"> <script type="text/javascript" src="http://yui.yahooapis.com/combo?2.6.0/build/yahoo-dom-event/yahoo-dom-event.js&2.6.0/build/imageloader/imageloader-min.js&2.6.0/build/element/element-beta-min.js&2.6.0/build/tabview/tabview-min.js"></script> <body class="yui-skin-sam"> <script> function closeWin() { // alert("closeWin() called"); // alert(opener); //window.opener.location.href = "profile.php"; // window.opener.location.reload(true); var rand = Math.random(); alert(rand); window.opener.sayhi(rand); self.close(); } </script> <h1>Finishing Log In</h1> <br> <?php if (isset($msg)) { print "<div class=\"alert\">{$msg}</div>"; } ?> <?php if (isset($error)) { print "<div class=\"error\">{$error}</div>"; } ?> <?php if (isset($success)) { print "<div class=\"success\">{$success}</div>"; } ?> <script>closeWin();</script> </body> </html> <?php }