当前位置: 首页 > 科技观察

在JavaScriptSDK中使用SoundCloudAPI

时间:2023-03-15 16:07:50 科技观察

SoundCloudSoundCloud开发了一个可供开发者使用的API。该API允许开发人员获取他们想要的几乎任何数据。但是API的使用有点混乱,尤其是初学者,因为此时的SoundCloudAPI开发文档和文档示例使用了不同版本的SDK(SoftwareDevelopmentKit)。SoundCloud介绍链接地址:http://baike.sogou.com/v128528573.htmSoundCloudAPI和SoundCloudSDK有什么区别?从根本上说,SoundCloudAPI是一组URL的集合,它为开发者提供从SoundCloud服务器获取数据的权限,而SoundCloudSDK是一个预先编写好的用于查询SoundCloudAPI的库(或客户端)。如果您想了解更多信息,请单击以下链接:http://stackoverflow.com/questions/834763/difference-between-an-api-and-sdk在本教程中,我们将学习如何访问SoundCloudAPI和如何简化使用SoundCloudSDK。我们将学习如何从SoundCloud设置SoundCloudSDK,然后继续编写JavaScript代码以使用SoundCloud获取SoundCloud数据、播放音频等。入门指南Promises介绍链接地址:http://www.oschina.net/translate/what-is-the-point-of-promises?print了解HTTP和API的概念和工作方式,对你的学习会有帮助本教程。如果你想了解更多关于API的知识,推荐你看看:AnIntroductiontoAPIs(API介绍。链接地址:https://zapier.com/learn/apis/)。在学习本教程时,了解一些有关异步JavaScript、承诺和回调的知识也很有帮助。在本文中,我们在代码示例中使用了jQuery,因此如果您了解jQuery的基础知识,那么阅读本文中的代码示例就不会那么痛苦。为了开始使用JavaScript查询SoundCloundAPI,我们需要下载SoundClound提供的JavaScriptSDK。正如文章开头提到的,有两个不同的SDK版本可用。使用哪个版本的SDK?两个版本的SDK之间的主要区别在于它们在发出异步请求并将其发送到SoundCloundAPI时返回数据的方式。最新版本的SDK返回一个Promise,而其他版本的SDK需要返回一个回调函数作为参数。我注意到一个问题。文档中使用的SDK版本,该版本的SDK用户登录功能界面好像有问题。这个问题是弹出的登录窗口不会自动关闭。因此,为了简单起见,也因为旧版本的SDK更稳定,我们将在整个教程的文章中的示例中使用旧版本的SDK。该版本的SDK需要为客户端的异步请求返回一个回调函数。使用SoundCloudAPI设置基本HTML文档我们创建一个基本HTML页面作为我们的主页。我们在这个页面的注意:HTML页面中document.onload=函数(){窗口。opener.setTimeout(window.opener.SC.connectCallback,1);}用户登录SC.connect(callback)是实现用户登录功能的方法。它通过打开一个弹出窗口提醒用户登录他们的SoundCloud帐户来做到这一点。基本用法如下:SC.connect(function(){console.log("Userhasloggedin");});这是一个更有趣的例子:SC.connect(function(){SC.get("/me",function(response){console.log("Welcome"+response.username);});});我们分块来看:用户完成登录后,用户登录页面会被重定向到我们之前创建的callback.html页面。然后当我们阅读callback.html中的代码时,弹出窗口将自动关闭。之后我们的回调函数会得到回调,回调是通过在SC.get()方法中向“/me”端点发起GET请求获得的。当GET请求完成后,会执行上述代码的回调函数,然后在控制台输出欢迎登录信息。注意:请求“/me”返回当前登录用户的数据。因此,在用户登录之前请求此URL将生成一条错误消息。处理用户数据用户登录后,我们可以做很多事情。为了演示一些功能,我在GitHub上创建了一个演示站点。可以点击这里查看源码:https://github.com/sitepoint-editors/SC_API,也可以点击这里查看其实现效果:http://mustagheesbutt.github.io/SC_API/。让我们看看这两个文件。在index.html中,有四个重要的div元素会在用户登录后填充用户数据:

Welcome

你的足迹:

    你的播放列表:

    第二个最重要的文件是script.js:这是所有魔法发生的地方。大多数代码我们都很熟悉,但让我们快速浏览一下//InitializationofSDKSC.initialize({client_id:"21832d295e3463208d2e??d0371ae08791",redirect_uri:"http://mustagheesbutt.github.io/SC_API/callback.html"});首先初始化我们的应用程序。请注意,这次我们使用redirect_uri指定了我们的callback.html页面。此URL或URI必须与我们在应用程序设置中指定的相同。//登录处理程序varuser_perma;$("#login").click(function(){SC.connect(function(){SC.get("/me",function(me){user_perma=me.permalink;setUI(me.username,me.avatar_url,me.description);});if(SC.isConnected){$("header,main").addClass("loggedIn");}getTracks();getPlaylists();});});然后我们给labelid为login的按钮添加一个click事件处理器。单击按钮时,将在单击事件代码中执行SC.connect(callback)代码。代码执行后,会弹出一个窗口提示用户登录,当用户登录完成后,弹窗会关闭。然后执行SC.connect()中的回调函数。在回调函数中,我们向“/me”端点发起GET请求,“/me”端点返回当前登录的用户对象。在我们刚才发起的GET请求回调中,我们将用户的***链接保存在变量user_perma中,这个变量是全局定义的,方便后面使用。setUI()方法、getTracks()方法和getPlaylists()方法的作用分别是设置UI、列出用户的跟踪记录和列出每个用户的播放列表。这些函数已经在同一个文件中定义。//找点东西玩functionplay(uri){url="http://soundcloud.com/"+user_perma+"/"+uri;SC.oEmbed(url,{maxheight:200},function(resp){$("#player").html(resp.html);});}//勾选播放曲目或播放列表时,使用'play()'函数播放$("ul").on("click",function(e){vartitle=e.target.innerHTML;if(tracks.hasOwnProperty(title)){play(tracks[title]);}elseif(playlists.hasOwnProperty(title)){play("sets/"+播放列表[标题]);}});当点击任何跟踪路径或播放列表名称时,将执行play()方法,该方法将使用SC.oEmbed()方法为单击的跟踪路径或播放列表名称在我们的页面中嵌入一个音频播放器。我们可以通过代码做很多事情,比如获取用户类型或者更新用户的信息,获取用户的头像,然后运行代码在SoundCloud服务器返回的信息中查看用户是谁,他们的爱好是什么。总结如果旧版SDK的用户登录功能可用,请使用旧版SDK。因为老版本的SDK是稳定的,返回的数据是使用回调函数返回的。如果旧版本的用户登录功能不可用,可以使用新版本的SDK。较新版本的SDK使用承诺返回数据。可以通过使用简单的GET请求访问SoundCloudAPI来获取数据。用户特定数据可通过“/me”端点获得,但前提是用户使用其SoundCloud帐户登录我们的网站。从客户端查询API是一个强大的工具,因为它将我们的信息保存在复杂的后端中。SDK使我们的编程生活变得更加轻松。在学习了它的基本用法后,我们甚至可以编写出功能更强大、用户更友好的Web应用程序。点击查看一些示例(链接地址:http://codepen.io/search/pens?q=soundcloud&limit=all&type=type-pens),并查看官方的SoundCloud文档以了解更多关于这个强大API的信息。方法。我很想听听您关于使用SoundCloudSDK构建(或计划构建)的应用程序的情况。请让我看到您的评论!关于作者:MustagheesButt是一名Web开发人员和作家Mustaghees是一名自由Web设计师和开发人员,偶尔会撰写文章和教程。他的兴趣包括计算机科学(包括机器人技术、AI人工智能和网络技术)和文学艺术。翻译链接:http://www.codeceo.com/article/javascript-sdk-soundcloud-api.html英文原文:UsingtheSoundCloudAPIwiththeJavaScriptSDK