рд╕рдордп рдмреАрддрдиреЗ рдХреЗ рд╕рд╛рде, рд▓реЗрдЦрдХ рдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреВрд░реНрдг рдореВрд░реНрдЦрддрд╛ рд╣реИ
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрдврд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рд╡рд╣ рдкреГрд╖реНрда рдЬрд┐рд╕ рдкрд░ рдиреАрдЪреЗ рд╕рдм рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрд▓рд░реНрдЯ рдЪрд╛рд▓реВ рдХрд░реЗрдВ)ред
рдПрдХ рдСрдирд▓рд╛рдЗрди рдЦрд┐рд▓рд╛рдбрд╝реА рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд╣реБрдВрдЪрд╛рдпрд╛ред
рдкрд░рд┐рдЪрдп
рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ! рдЗрддрдирд╛ рд╕рдордп рдкрд╣рд▓реЗ "рдСрдирд▓рд╛рдЗрди рдкреНрд▓реЗрдпрд░" рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдирд╣реАрдВ рдЫреБрдЖред рдмрд╣реБрдд рд╣реИрдВ, рдмрд╣реБрдд рдХреБрдЫ рдХрд╣реВрдБрдЧрд╛ред рдореИрдВ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдПред рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд - vk.com рдЖрдзрд╛рд░, last.fm scrobbling (рдмрд╛рдж рдореЗрдВ рдЕрдВрддрд┐рдо), рдЗрд╕рдХреЗ рдПрд▓реНрдмрдо, рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ, рджрд┐рд▓ рдФрд░ рдЗрддрдиреЗ рдкрд░ред рд╕рдорд╕реНрдпрд╛ рддреБрд░рдВрдд рдЙрддреНрдкрдиреНрди рд╣реБрдИ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реИред рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдмрд╛рдж рдореЗрдВ рдЬреЗрдПрд╕) рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдЪреВрдВрдХрд┐ рдореБрдЭреЗ "рдЕрдВрддрд┐рдо рдПрдлрд╝рдЖрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ" рдХрд╛ рд░реВрд╕реА рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдирд╕реЛрдВ рдФрд░ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рд╣реИ, рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдЖрдЗрдП рд╣рдо scrobbling рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ last.fm api рдХреЗ рдХрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рд╣рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рддреНрд░, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдкрд░ рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВрдЧреЗред рд╣рд╛рдВ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рд╣рд░ рдХреЛрдИ рд╕рдордЭрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпреБрд╡рд╛ рдФрд░ рдмреВрдврд╝рд╛ рджреЛрдиреЛрдВ рд╕рдордЭ рд╕рдХреЗрдВред
рдХрд╛рд░реНрдп рдХреА рдкреНрд░рдЧрддрд┐
1. рдпрджрд┐ last.fm api рдХрд╛ рдХреЛрдИ рдЦрд╛рддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ
рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреМрдбрд╝реЗрдВ ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреА рдЪрд╛рдмреА рд╣реИ - рддреЛ рдкрдврд╝реЗрдВред
2. рдкрд┐рдЫрд▓реЗ рдлреНрд▓рд┐рдкрд░ рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
js рд▓рд╛рдЗрдмреНрд░реЗрд░реА [github.com] рдХрд╛ рд▓рд┐рдВрдХ рд╣реИред рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛, рдореИрдВрдиреЗ рдЗрд╕реЗ Google рдирд╣реАрдВ рдХрд┐рдпрд╛, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рддреЛ, рдЪрд▓реЛ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ "рдорд╛рдирдХ" рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдореЗрдВ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ "рдорд╛рдирдХ" рд╣реИрдВред
3. рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рдорд╛рдирдХ md рд╣реИрд╢ рдХреА рдЬрдЧрд╣ рд╣реИ ... рдЯреЛрд░рд╕?! рдЪрд▓реЛ рдЗрд╕реЗ md5 рдПрдирдХреЛрдбрд░ рдХрд╣рддреЗ рд╣реИрдВред рдмрддрдЦ, рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рдорд╛рдирдХ md5 рдПрдирдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рдмрд▓реНрдХрд┐, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлреНрд▓рд┐рдкрд░ рджрдВрдЧреЗ рдФрд░ рд╣реИрд╢ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рдПрдХ рд╕рд┐рджреНрдз рд╕рдВрд╕реНрдХрд░рдг
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ [pajhome.org.uk]ред рдбрд╛рдЙрдирд▓реЛрдб рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЬрд╝рд┐рдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг 2.2 рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп), рдЗрд╕рдореЗрдВ md5-min.js рдвреВрдВрдвреЗрдВ рдФрд░ рдЗрд╕реЗ рдорд╛рдирдХ lastfm.api.md5.js рд╕реЗ рдмрджрд▓реЗрдВред
4. рдорд╛рдирдХ lastfm.api.js рдореЗрдВ рд╣рдо
рд░рд┐рдЯрд░реНрди md5 (рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдХреЗ рд╕рд╛рде 841 рд▓рд╛рдЗрди рдмрджрд▓рддреЗ рд╣реИрдВ
; рд╡рд╛рдкрд╕реА рдкрд░
hex_md5 (рд╕реНрдЯреНрд░рд┐рдВрдЧ); ред рдирдпрд╛ рдПрдирдХреЛрдбрд░ рдХреНрдпреЛрдВрдХрд┐
5. рдорд╣рд╛рди, рд╣реИрд╢рд┐рдВрдЧ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
<script type="text/javascript" src="md5-min.js"></script> <script type="text/javascript" src="lastfm.api.js"></script>
рдореИрдВрдиреЗ рдорд╛рдирдХ lastfm.api.md5.js рдХреЛ md5-min.js рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдорд╛рдирдХ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВред рдФрд░ рдЖрджреЗрд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ред
6. рд╣рдо рд╕рд░рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдлреНрд▓рд┐рдкрд░ рдкрд░ рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рддреЗ рд╣реИрдВ
var lastfm = new LastFM({ apiKey : '96d047d302a8707f3a7410873466dbfd', apiSecret : '3afdcf3ccad058a82202544549cb141b' });
рд╣рд╛рдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ last.fm рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рд╢реВрдиреНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЪрд╛рдмрд┐рдпрд╛рдБ рдЦреБрд▓реА рд╣реБрдИ рд╣реИрдВред рдПрдкреАрдХреЗ - рдПрдкреАрдкреА рдХреБрдВрдЬреА рдСрди рдж рдлреНрд▓рд┐рдкрд░, рдПрдкреАрд╕реЗрдХреНрд░реЗрдЯ - рд╕реАрдХреНрд░реЗрдЯред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдХреЛрдб, рдордд рднреВрд▓рдирд╛ред
7. рдорд╛рдирдХ lastfm.api.js рдореЗрдВ рдЖрдЧреЗ рдлрд┐рд░ рд╕реЗ рд╕реНрдХреНрд░рдмрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рджреЛрд╖ рд╣реИред рд╣рдореЗрдВ 659-674 рд▓рд╛рдЗрдиреЗрдВ рдорд┐рд▓рддреА рд╣реИрдВ (рдореИрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрдиреЗрдВ, рдЯреИрдм рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдХрд╛рдЯрддрд╛ рд╣реВрдВ)
scrobble : function(params, callbacks){ if(params.constructor.toString().indexOf("Array") != -1){ var p = {}; for(i in params){ for(j in params[i]){ p[j + '[' + i + ']'] = params[i][j]; } } params = p; } signedCall('track.scrobble', params, session, callbacks, 'POST'); }
рдЗрдирдкреБрдЯ рдкрд░ рдХреЛрдИ рд╕рддреНрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╣реИред рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рдПрдХ рд╢рдмреНрдж рд╣реИред рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред
scrobble: function (params, callbacks) { =>
scrobble: function (рдкрд░рдореНрд╕, рд╕реЗрд╢рди, рдХреЙрд▓рдмреИрдХ) {8. рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╕реНрдХреНрд░рдмрд┐рдВрдЧ рд╣реИред рдпрд╣рд╛рдВ рд░рд╛рд╕реНрддреЗ рдбрд╛рдпрд╡рд░реНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рддреНрд░ рдХреБрдВрдЬреА рдирд╣реАрдВ рд╣реИ - рддреЛ рдкрд░ рдкрдврд╝реЗрдВ, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрджрд┐ рд╕рддреНрд░ рдХреБрдВрдЬреА рд╣реИ, рддреЛ рдЪрд░рдг 11 рдкрд░ рдЬрд╛рдПрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
9. рдПрдХ рд╕рддреНрд░ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рджреЛ рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЯреЛрдХрди рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕рддреНрд░ рдХреА рдХреБрдВрдЬреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ 60 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдПред рджреВрд╕рд░рд╛ рдЪрд░рдг рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рд╕рддреНрд░ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред
10. рдЖрдк рдПрдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
http:
рдЬрд╣рд╛рдВ "=" рд╕рдВрдХреЗрдд рдХреЗ рдмрд╛рдж рдлреНрд▓рд┐рдкрд░ рд╕реЗ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╕рд░рд▓ рд▓рд┐рдВрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдЧрд╛ред
рдЖрдкрдХреЗ рд╡рд┐рддреНрдд
API рдЦрд╛рддреЗ рдореЗрдВ рдХреЙрд▓рдмреИрдХ URL рдлрд╝реАрд▓реНрдб рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЯреЛрдХрди = XXXXX рдкрддреЗ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк
рд╕рд░реНрд╡рд░ред рдХреЙрд▓рдмреИрдХ URL рдПрдХ рдкреГрд╖реНрда рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреА рд╣реИред рдпрд╛рдиреА рдЗрд░реЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ, рдкрддреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЯреЛрдХрди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕рддреНрд░ рдХреБрдВрдЬреА рдХреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рдФрд░ рдлрд┐рд░ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЗрд╕ рдХреБрдВрдЬреА рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЖрд╕рд╛рди рд╣реИ, рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдирд╛ рдирд╣реАрдВ рд╣реИред
рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк
рдХреНрд▓рд╛рдЗрдВрдЯред рд╣рдо рдЬреЗрдПрд╕ рджреНрд╡рд╛рд░рд╛ рдкрддреЗ рд╕реЗ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЯреЛрдХрди рдЪрд░ рдореЗрдВ рдЦреАрдВрдЪрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЯреЛрдХрди рд╣реИ - рд╣рдо рдЕрдкрдиреЗ рдЬреАрд╡рди рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдЖрдЦрд┐рд░реА рдЕрдкреА рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ:
lastfm.auth.getSession({token: token}, {success: function(data){ alert(", "+data.session.name+"!\n\r , "+data.session.key);
рдпрд╣ рд╕рддреНрд░ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ json рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдпрджрд┐ рд╣рдореЗрдВ рдПрдХ рдмрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рддреНрд░ рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рд╣рдо рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдПрдХ рдлреНрд▓рд┐рдкрд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рд╡реЗрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдмреЗрд╡рдХреВрдлреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдЖрдкрдХреА рджрд┐рд▓реА рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреБрдХреАрдЬрд╝ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдСрд░реНрдЯ.рдЯреИрдЧ рд╕реЗрд╢рди рдХреЛ рдкрд┐рдЫрд▓реА
рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд╣рд▓реЗ рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ рдХреЗ рддрд╣рдд рд╣рдо рдЙрди рд╕рднреА рдЪрд░реЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдареАрдХ рд╣реИ, рдЖрдЗрдП рд╕рд╛рд╣рд╕рд┐рдХ рд░реВрдк рд╕реЗ рдЯреНрд░реИрдХ.рд╕реНрд░реЛрдмрд▓ рдореЗрдВ рдмрджрд▓реЗрдВ
11. рд╕реНрдХрд░реНрдмрд▓реАрдоред рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ (рдЬреИрд╕рд╛
рдХрд┐ рдЕрдВрддрд┐рдо
рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ) рдЯреНрд░реИрдХ, рдХрд▓рд╛рдХрд╛рд░ рдФрд░ рдпреВрдирд┐рдХреНрд╕-рдЯрд╛рдЗрдо рдХрд╛ рдирд╛рдо рд╣реИ
var ts = Math.floor(new Date().getTime()/1000); lastfm.track.scrobble({artist: "Linkin Park", track: "Numb", timestamp: ts}, {key: sk}, {success: function(data){ alert(" !"); }, error: function(code, message){ alert(" ..."); }});
{key: sk} рдпрд╣ рд╕рддреНрд░ рдХреБрдВрдЬреА рд╣реИред рдпрд╣ рд╡рд╣ рд░рд╣рд╕реНрдпрдордп рд╕рддреНрд░ рд╣реИред
12. рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЯрд┐рдкреНрдкрдгреА: рдЕрдЧрд░ рдЕрдЪрд╛рдирдХ рдПрдХ рджреВрд╕рд░реЗ рджреЛ рдлреНрд▓рд┐рдкрд░ рдкрд░реНрдЪреА рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз - рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрдЧреАред рдорд╛рдирдХ рдХреА 93 рдкрдВрдХреНрддрд┐ last.fm api:
var jsonp = 'jsonp' + new Date (); GetTime (); =>
var jsonp = 'jsonp' + new Date ()ред getTime () + '' + Math.round (1000000 * Math.random ());рдирд┐рд╖реНрдХрд░реНрд╖
рд╡рд╣ рд╕рдм рдорд╛рд▓реВрдо рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдЖрдЙрдЯрдкреБрдЯ рд▓рдЧрд╛рддрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдлрд┐рд░ data.result рдпрд╛ data.artistmatches, рдЗрд╕рд▓рд┐рдП рдзреНрдпрд╛рди рджреЗрдВред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рд╣реИ!
рд╕рдВрджрд░реНрдн
рд╡рд╣ рдкреГрд╖реНрда рдЬрд┐рд╕ рдкрд░ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ (рдЕрд▓рд░реНрдЯ рдЪрд╛рд▓реВ рдХрд░реЗрдВ)ред
рдПрдХ рдСрдирд▓рд╛рдЗрди рдЦрд┐рд▓рд╛рдбрд╝реА рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд╣реБрдВрдЪрд╛рдпрд╛ред
рдСрдлрдЯреЙрдкрд┐рдХ: рдореИрдВ рдЙрд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЬрдм рдореЗрд░реА рдЖрдВрдЦреЗрдВ рдореЙрдирд┐рдЯрд░ рдХреЛ рджреЗрдЦ рд░рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди: рд╡рд┐рд╖рдп рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдЦрд┐рд▓рд╛рдбрд╝реА рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реИ, рдЕрдЪрд╛рдирдХ рдХрд┐рд╕реА рдХреЛ рд╡рд┐рд╖рдп рдХреЗ рд╡рд┐рд╖рдп рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдФрд░ рд╡рд╣ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдХрд╕рдо рди рдЦрд╛рдПрдВ, рдХреГрдкрдпрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реЛрдЧрд╛ред рдмрд╛рдж рдореЗрдВред