- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Spotipy 创建了一个简单的 Python 程序,该程序根据用户设备中下载的轨道显示一些推荐的轨道。但我在使程序变得用户友好方面遇到了一些麻烦。
首先,通过将我的代码上传到 GitHub 等方式与用户共享我的客户端 ID 和客户端 key 是否有任何问题?我可以使用重定向 URI 作为 http://localhost/或者我应该为我的程序创建一个网站以确保安全?在用户名字段中,它应该是要分析的帐户的用户名,或者可以是任何内容,例如“Brian Rogers”
?
在身份验证部分,它在 Python 控制台中向用户显示以下消息:
User authentication requires interaction with your
web browser. Once you enter your credentials and
give authorization, you will be redirected to
a url. Paste that url you were directed to to
complete the authorization.
Opening https://... in your browser
Enter the URL you were redirected to:
我的问题是:既然我正在使用 Tkinter,如何将输入从 Tkinter 输入框重定向到 Python 控制台?
最后,身份验证 token 需要多长时间才会过期?如果是这样,如何更新它(如果可能的话,这样只有用户第一次运行程序时才进入)?
提前感谢患者!
最佳答案
我会一一解答您的所有问题。
is there any problem by sharing my Client ID and my Client Secret with the user by, for example, uploading my code in GitHub?
应始终避免将个人凭据放入源中。如果有人滥用您的凭据,您将承担责任,因为它们是您的凭据。无论如何,我能想象到的唯一可能造成的破坏就是向 Spotify 的 API 发送垃圾邮件请求,我相信 Spotify 的 API 已经有了保护措施,如果检测到垃圾请求,将会丢弃进一步的请求。我已经看到一些项目通过创建特殊帐户来为其项目生成 API 凭据,将其 Spotify 和 YouTube API 凭据放入其源代码中,并推送到 GitHub,以使该工具更易于设置和使用。
Can I use Redirect URI as being http://localhost/ or should I create a website for my program for securing purposes? In Username field, it should be the username of the account to be analyzed or it can be anything, like "Brian Rogers"?
由于您只是在 Spotify 上搜索相关轨道,因此我相信您可能不需要访问您正在使用其凭据的 Spotify 用户的个人信息。如果是这样,您可以使用 oauth2.SpotifyClientCredentials
对自己进行授权,从而避免传递用户名
和验证重定向 URI:
import spotipy
import spotipy.oauth2 as oauth2
credentials = oauth2.SpotifyClientCredentials(
client_id=client_id,
client_secret=client_secret)
token = credentials.get_access_token()
# This won't prompt for verification of Redirect URI
sp = spotipy.Spotify(auth=token)
My question is: since I'm managing to use Tkinter, how can I redirect the input from the Tkinter input box to the Python console?
如果您使用上面提到的 oauth2.SpotifyClientCredentials
,则不需要。
Finally, how long does the authentication token take to expire? And if so, how to renew it (if possible, so that only the user enters when they run the program for the first time)?
截至撰写本文时, token 的有效期恰好为一小时。您可以通过检查 credentials.token_info["expires_in"]
的值进行确认,该值显示时间(以秒为单位)。
此外,当调用依赖方法但 token 已过期时,spotipy 会引发 spotipy.client.SpotifyException
。因此,您可以捕获此异常并用新实例覆盖之前的 spotipy.client.Spotify
实例。至少你会做类似的事情:
import spotipy
import spotipy.oauth2 as oauth2
def authenticate_calls():
credentials = oauth2.SpotifyClientCredentials(
client_id=client_id,
client_secret=client_secret,
)
token = credentials.get_access_token()
sp = spotipy.Spotify(auth=token)
return sp
sp = authenticate_calls()
try:
do_something_that_needs_authentication(sp)
except spotipy.client.SpotifyException:
sp = authenticate_calls()
do_something_that_needs_authentication(sp)
您还可以创建一个装饰器函数,如果 token 过期,它将刷新 token 并用它装饰您的函数!
关于python - 使 Spotipy 程序变得用户友好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56674952/
为了我们公司的 SEO 需求,我们需要通过 301 将一些 SEO URL 更改为另一个 URL。 示例: /seo/keywords-1-2-3/ 到 /seo/mynew301page-1-2-3
使已经开发的 Vue 应用程序对 SEO 友好的最简单方法是什么(搜索引擎可以读取所有标题元标记)。 我已经研究过 NUXT,我将不得不再次重新构建整个过程,而且除了 SSR(服务器端渲染)部分之外,
我正在使用 Azure 数据库进行一些数据库管理,我需要执行查询,例如删除数据库中的所有约束。 sp_MSForEachTable 在使用 Azure 数据库时不可用,因此我正在采用不同的方法来实现此
在我的研究中,我发现了 2 种方法。 两者都需要修改 Global.Asax 中的 Application_BeginRequest 过程,您可以在其中运行代码来进行实际的 URL 映射(我的数据库
例如我有这个字符串: make no@ sen# `se ! 我会像这样生成 url make-no-sen-se! 我有这个: var value = $('.titleVal').val(
我有一个网站,我想开始使用友好的 URL。 所以不是: http://server.com/company.php?id=12 我可以使用: http://server.com/company/ste
我正在用 pandas 编写一些数据分析管道。我一直在使用的数据框中的一列是由自定义编写的类的对象组成的,每个类都用一个字符串初始化,我用正则表达式从中读取各种信息并存储在对象的属性中。子类结构类似于
这个问题已经存在: C++ create new windows command [closed] 关闭 4 年前。 我正在尝试创建一个 C++ 控制台应用程序并创建新命令。 我想做的事的例子:在终
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
我一直在尝试为 prestashop 中的产品创建第二个 url 重写选项.在 SEO 和 URL 部分的标准 Prestashop 安装中,我得到了以下产品 url 构建: {category:/}
我在使用重写引擎通过友好的 url 实现我的目标时遇到了一些问题。 基本上我有以下结构:- 索引.php - 吃下 - index.php 我在主索引中的链接是这样的:下载/index.php?dow
我真的不喜欢在链接中使用选择/选项元素: 但是他们已经找到了作为一种选择进入设计师组合的方式,并尽我所能劝阻他们不要使用它们,我知道如果没有谷歌的力量,我会输掉这场战斗,而且“这对 SEO 不利”。
dispose: function() { var disposer; while (disposer = this._disposers.shift()) { // expected
我将 Heroku 应用程序上的自定义域更改为新域。现在我将创建一个新的 Heroku 应用程序,它的唯一目的是重定向到第一个应用程序。 我在 Google Webmasters 中读到我应该像这样进
我有一个类。这个类有2个字段。 我有一个整数数组。我的任务是重载友好的“+”运算符,以便可以将数组中的字段值与数组元素的值相加。 例如: class Test { public: double
这个问题在这里已经有了答案: Encode URL in JavaScript (22 个答案) 关闭 9 年前。 您好,我有这个 URL(顶部),我正在尝试与“pinterest”一起使用,他们会
jQuery 模式对话框 seo 友好吗?如果不是,我们可以进行哪些更改,以便爬虫可以轻松读取模态对话框中的内容? 提前致谢。 编辑:抱歉忘记提及模式中的内容来自服务器端。所以它也使用 ajax。 最
这是我的 main.js 文件: jQuery(function($) { $('LI.tree-item-name').has('ul').click(function() { if (
static func randomShape() -> Shape { // Find out count of possible shapes var maxValue = 0
我正在构建一个通过 index.php 运行所有代码的网站。 例如 index.php?controller=something&id=01234。 我想使用 PHP 创建友好的 URL,所以我这样做
我是一名优秀的程序员,十分优秀!