发布于 2015-10-07 10:01:41 | 202 次阅读 | 评论: 0 | 来源: 网络整理
            Zend_Service_Audioscrobbler is a simple API for using the Audioscrobbler REST Web Service. The
            Audioscrobbler Web Service provides access to its database of Users, Artists, Albums, Tracks, Tags, Groups,
            and Forums. The methods of the Zend_Service_Audioscrobbler class begin with one of these terms.
            The syntax and namespaces of the Audioscrobbler Web Service are mirrored in
            Zend_Service_Audioscrobbler. For more information about the Audioscrobbler REST Web Service,
            please visit the Audioscrobbler Web Service
            site.
        
            In order to retrieve information for a specific user, the setUser() method is first used to
            select the user for which data are to be retrieved. Zend_Service_Audioscrobbler provides
            several methods for retrieving data specific to a single user:
            
                        userGetProfileInformation(): Returns a SimpleXML object containing the current
                        user's profile information.
                    
                        userGetTopArtists(): Returns a SimpleXML object containing a list of the current
                        user's most listened to artists.
                    
                        userGetTopAlbums(): Returns a SimpleXML object containing a list of the current
                        user's most listened to albums.
                    
                        userGetTopTracks(): Returns a SimpleXML object containing a list of the current
                        user's most listened to tracks.
                    
                        userGetTopTags(): Returns a SimpleXML object containing a list of tags most applied
                        by the current user.
                    
                        userGetTopTagsForArtist(): Requires that an artist be set via
                        setArtist(). Returns a SimpleXML object containing the tags most applied to the
                        current artist by the current user.
                    
                        userGetTopTagsForAlbum(): Requires that an album be set via
                        setAlbum(). Returns a SimpleXML object containing the tags most applied to the
                        current album by the current user.
                    
                        userGetTopTagsForTrack(): Requires that a track be set via
                        setTrack(). Returns a SimpleXML object containing the tags most applied to the
                        current track by the current user.
                    
                        userGetFriends(): Returns a SimpleXML object containing the user names of the
                        current user's friends.
                    
                        userGetNeighbours(): Returns a SimpleXML object containing the user names of
                        people with similar listening habits to the current user.
                    
                        userGetRecentTracks(): Returns a SimpleXML object containing the 10 tracks most
                        recently played by the current user.
                    
                        userGetRecentBannedTracks(): Returns a SimpleXML object containing a list of the 10
                        tracks most recently banned by the current user.
                    
                        userGetRecentLovedTracks(): Returns a SimpleXML object containing a list of the 10
                        tracks most recently loved by the current user.
                    
                        userGetRecentJournals(): Returns a SimpleXML object containing a list of the
                        current user's most recent journal entries.
                    
                        userGetWeeklyChartList(): Returns a SimpleXML object containing a list of weeks for
                        which there exist Weekly Charts for the current user.
                    
                        userGetRecentWeeklyArtistChart(): Returns a SimpleXML object containing the most
                        recent Weekly Artist Chart for the current user.
                    
                        userGetRecentWeeklyAlbumChart(): Returns a SimpleXML object containing the most
                        recent Weekly Album Chart for the current user.
                    
                        userGetRecentWeeklyTrackChart(): Returns a SimpleXML object containing the most
                        recent Weekly Track Chart for the current user.
                    
                        userGetPreviousWeeklyArtistChart($fromDate, $toDate): Returns a SimpleXML object
                        containing the Weekly Artist Chart from $fromDate to $toDate for the
                        current user.
                    
                        userGetPreviousWeeklyAlbumChart($fromDate, $toDate): Returns a SimpleXML object
                        containing the Weekly Album Chart from $fromDate to $toDate for the
                        current user.
                    
                        userGetPreviousWeeklyTrackChart($fromDate, $toDate): Returns a SimpleXML object
                        containing the Weekly Track Chart from $fromDate to $toDate for the
                        current user.
                    
例 36.11. Retrieving User Profile Information
                In this example, we use the setUser() and userGetProfileInformation() methods
                to retrieve a specific user's profile information:
            
$as = new Zend_Service_Audioscrobbler();
$as->setUser('BigDaddy71'); // Set the user whose profile information we want to retrieve
$profileInfo = $as->userGetProfileInformation(); // Retrieve BigDaddy71's profile information
print "Information for $profileInfo->realname can be found at $profileInfo->url"; // Display some of it
            
例 36.12. Retrieving a User's Weekly Artist Chart
$as = new Zend_Service_Audioscrobbler();
$as->setUser('lo_fye'); // Set the user whose profile weekly artist chart we want to retrieve
$weeks = $as->userGetWeeklyChartList(); // Retrieves a list of previous weeks for which there are chart data
if (count($weeks) < 1) {
    echo 'No data available';
}
sort($weeks); // Order the list of weeks
$as->setFromDate($weeks[0]); // Set the starting date
$as->setToDate($weeks[0]); // Set the ending date
$previousWeeklyArtists = $as->userGetPreviousWeeklyArtistChart();
echo 'Artist Chart For Week Of ' . date('Y-m-d h:i:s', $as->from_date) . '<br />';
foreach ($previousWeeklyArtists as $artist) {
    // Display the artists' names with links to their profiles
    print '<a href="' . $artist->url . '">' . $artist->name . '</a><br />';
}
            
            Zend_Service_Audioscrobbler provides several methods for retrieving data about a specific
            artist, specified via the setArtist() method:
            
                        artistGetRelatedArtists(): Returns a SimpleXML object containing a list of
                        Artists similar to the current Artist.
                    
                        artistGetTopFans(): Returns a SimpleXML object containing a list of Users who
                        listen most to the current Artist.
                    
                        artistGetTopTracks(): Returns a SimpleXML object containing a list of the current
                        Artist's top-rated Tracks.
                    
                        artistGetTopAlbums(): Returns a SimpleXML object containing a list of the current
                        Artist's top-rated Albums.
                    
                        artistGetTopTags(): Returns a SimpleXML object containing a list of the Tags most
                        frequently applied to current Artist.
                    
例 36.13. Retrieving Related Artists
$as = new Zend_Service_Audioscrobbler();
$as->setArtist('LCD Soundsystem'); // Set the artist for whom you would like to retrieve related artists
$relatedArtists = $as->artistGetRelatedArtists(); // Retrieve the related artists
foreach ($relatedArtists as $artist) {
    print '<a href="' . $artist->url . '">' . $artist->name . '</a><br />'; // Display the related artists
}
            
            Zend_Service_Audioscrobbler provides two methods for retrieving data specific to a single
            track, specified via the setTrack() method:
            
                        trackGetTopFans(): Returns a SimpleXML object containing a list of Users who
                        listen most to the current Track.
                    
                        trackGetTopTags(): Returns a SimpleXML object containing a list of the Tags most
                        frequently applied to the current Track.
                    
            Zend_Service_Audioscrobbler provides several methods for retrieving data specific to a single
            tag, specified via the setTag() method:
            
                        tagGetOverallTopTags(): Returns a SimpleXML object containing a list of Tags most
                        frequently used on Audioscrobbler.
                    
                        tagGetTopArtists(): Returns a SimpleXML object containing a list of Artists to whom
                        the current Tag was most frequently applied.
                    
                        tagGetTopAlbums(): Returns a SimpleXML object containing a list of Albums to which
                        the current Tag was most frequently applied.
                    
                        tagGetTopTracks(): Returns a SimpleXML object containing a list of Tracks to which
                        the current Tag was most frequently applied.
                    
            Zend_Service_Audioscrobbler provides several methods for retrieving data specific to a single
            group, specified via the setGroup() method:
            
                        groupGetRecentJournals(): Returns a SimpleXML object containing a list of recent
                        journal posts by Users in the current Group.
                    
                        groupGetWeeklyChart(): Returns a SimpleXML object containing a list of weeks for
                        which there exist Weekly Charts for the current Group.
                    
                        groupGetRecentWeeklyArtistChart(): Returns a SimpleXML object containing the most
                        recent Weekly Artist Chart for the current Group.
                    
                        groupGetRecentWeeklyAlbumChart(): Returns a SimpleXML object containing the most
                        recent Weekly Album Chart for the current Group.
                    
                        groupGetRecentWeeklyTrackChart(): Returns a SimpleXML object containing the most
                        recent Weekly Track Chart for the current Group.
                    
                        groupGetPreviousWeeklyArtistChart($fromDate, $toDate): Requires
                        setFromDate() and setToDate(). Returns a SimpleXML object containing
                        the Weekly Artist Chart from the current fromDate to the current toDate for the current Group.
                    
                        groupGetPreviousWeeklyAlbumChart($fromDate, $toDate): Requires
                        setFromDate() and setToDate(). Returns a SimpleXML object containing
                        the Weekly Album Chart from the current fromDate to the current toDate for the current Group.
                    
                        groupGetPreviousWeeklyTrackChart($fromDate, $toDate): Returns a SimpleXML object
                        containing the Weekly Track Chart from the current fromDate to the current toDate for the
                        current Group.