Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Vanishing597
NeteaseCloudMusicApi
提交
39b32b4b
N
NeteaseCloudMusicApi
项目概览
Vanishing597
/
NeteaseCloudMusicApi
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
NeteaseCloudMusicApi
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
39b32b4b
编写于
3月 26, 2021
作者:
C
Clark
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1. 在调用模块前,若`req.query.cookie`和`req.body.cookie`是字符串,则先解码,再转为对象。
2. 删除在各模块中的转换。 3. 更新文档。
上级
3fe3995f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
7 addition
and
15 deletion
+7
-15
app.js
app.js
+5
-3
docs/README.md
docs/README.md
+2
-2
module/homepage_dragon_ball.js
module/homepage_dragon_ball.js
+0
-3
module/simi_artist.js
module/simi_artist.js
+0
-3
module/song_url.js
module/song_url.js
+0
-4
未找到文件。
app.js
浏览文件 @
39b32b4b
...
@@ -78,9 +78,11 @@ fs.readdirSync(path.join(__dirname, 'module'))
...
@@ -78,9 +78,11 @@ fs.readdirSync(path.join(__dirname, 'module'))
let
question
=
require
(
path
.
join
(
__dirname
,
'
module
'
,
file
))
let
question
=
require
(
path
.
join
(
__dirname
,
'
module
'
,
file
))
app
.
use
(
route
,
(
req
,
res
)
=>
{
app
.
use
(
route
,
(
req
,
res
)
=>
{
if
(
typeof
req
.
query
.
cookie
===
'
string
'
)
{
;[
req
.
query
,
req
.
body
].
forEach
((
item
)
=>
{
req
.
query
.
cookie
=
cookieToJson
(
req
.
query
.
cookie
)
if
(
typeof
item
.
cookie
===
'
string
'
)
{
}
item
.
cookie
=
cookieToJson
(
decodeURIComponent
(
item
.
cookie
))
}
})
let
query
=
Object
.
assign
(
let
query
=
Object
.
assign
(
{},
{},
{
cookie
:
req
.
cookies
},
{
cookie
:
req
.
cookies
},
...
...
docs/README.md
浏览文件 @
39b32b4b
...
@@ -370,7 +370,7 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
...
@@ -370,7 +370,7 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
存结果的接口 , 可在请求 url 后面加一个时间戳参数使 url 不同 , 例子 :
存结果的接口 , 可在请求 url 后面加一个时间戳参数使 url 不同 , 例子 :
`/simi/playlist?id=347230×tamp=1503019930000`
(之所以加入缓存机制是因为项目早期没有缓存机制,很多 issues 都是报 IP高频,请按自己需求改造缓存中间件(app.js),源码不复杂)
`/simi/playlist?id=347230×tamp=1503019930000`
(之所以加入缓存机制是因为项目早期没有缓存机制,很多 issues 都是报 IP高频,请按自己需求改造缓存中间件(app.js),源码不复杂)
!> 如果是跨域请求 , 请在所有请求带上
`xhrFields: { withCredentials: true }`
(axios 为
`withCredentials: true`
)
否则
!> 如果是跨域请求 , 请在所有请求带上
`xhrFields: { withCredentials: true }`
(axios 为
`withCredentials: true`
, Fetch API 为
`fetch(url, { credentials: 'include' })`
), 或直接手动传入cookie (参见
`登录`
),
否则
可能会因为没带上 cookie 导致 301, 具体例子可看
`public/test.html`
, 访问
`http://localhost:3000/test.html`
(默认端口的话) 例子使用 jQuery 和 axios
可能会因为没带上 cookie 导致 301, 具体例子可看
`public/test.html`
, 访问
`http://localhost:3000/test.html`
(默认端口的话) 例子使用 jQuery 和 axios
!> 301 错误基本都是没登录就调用了需要登录的接口,如果登录了还是提示 301, 基本都是缓存把数据缓存起来了,解决方法是加时间戳或者等待 2 分钟或者重启服务重新登录后再调用接口,可自行改造缓存方法
!> 301 错误基本都是没登录就调用了需要登录的接口,如果登录了还是提示 301, 基本都是缓存把数据缓存起来了,解决方法是加时间戳或者等待 2 分钟或者重启服务重新登录后再调用接口,可自行改造缓存方法
...
@@ -430,7 +430,7 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
...
@@ -430,7 +430,7 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
完成登录后 , 会在浏览器保存一个 Cookies 用作登录凭证 , 大部分 API 都需要用到这个
完成登录后 , 会在浏览器保存一个 Cookies 用作登录凭证 , 大部分 API 都需要用到这个
Cookies,非跨域情况请求会自动带上 Cookies,跨域情况参考
`调用前须知`
Cookies,非跨域情况请求会自动带上 Cookies,跨域情况参考
`调用前须知`
v3.30.0后支持手动传入cookie,登录接口返回内容新增
`cookie`
字段,保存到本地后,get请求带上
`?cookie=xxx`
或者 post请求body带上
`cookie`
即可,如:
`/user/cloud?cookie=xxx`
或者
v3.30.0后支持手动传入cookie,登录接口返回内容新增
`cookie`
字段,保存到本地后,get请求带上
`?cookie=xxx`
(先使用
`encodeURIComponent()`
编码 cookie 值)
或者 post请求body带上
`cookie`
即可,如:
`/user/cloud?cookie=xxx`
或者
```
```
{
{
...,
...,
...
...
module/homepage_dragon_ball.js
浏览文件 @
39b32b4b
...
@@ -4,9 +4,6 @@
...
@@ -4,9 +4,6 @@
// !需要登录或者匿名登录,非登录返回 []
// !需要登录或者匿名登录,非登录返回 []
const
config
=
require
(
'
../util/config.json
'
)
const
config
=
require
(
'
../util/config.json
'
)
module
.
exports
=
(
query
,
request
)
=>
{
module
.
exports
=
(
query
,
request
)
=>
{
if
(
typeof
query
.
cookie
===
'
string
'
)
{
query
.
cookie
=
cookieToJson
(
query
.
cookie
)
}
if
(
!
(
'
MUSIC_U
'
in
query
.
cookie
))
if
(
!
(
'
MUSIC_U
'
in
query
.
cookie
))
query
.
cookie
.
MUSIC_A
=
config
.
anonymous_token
query
.
cookie
.
MUSIC_A
=
config
.
anonymous_token
const
data
=
{}
const
data
=
{}
...
...
module/simi_artist.js
浏览文件 @
39b32b4b
// 相似歌手
// 相似歌手
const
config
=
require
(
'
../util/config.json
'
)
const
config
=
require
(
'
../util/config.json
'
)
module
.
exports
=
(
query
,
request
)
=>
{
module
.
exports
=
(
query
,
request
)
=>
{
if
(
typeof
query
.
cookie
===
'
string
'
)
{
query
.
cookie
=
cookieToJson
(
query
.
cookie
)
}
if
(
!
(
'
MUSIC_U
'
in
query
.
cookie
))
if
(
!
(
'
MUSIC_U
'
in
query
.
cookie
))
query
.
cookie
.
MUSIC_A
=
config
.
anonymous_token
query
.
cookie
.
MUSIC_A
=
config
.
anonymous_token
const
data
=
{
const
data
=
{
...
...
module/song_url.js
浏览文件 @
39b32b4b
// 歌曲链接
// 歌曲链接
const
crypto
=
require
(
'
crypto
'
)
const
crypto
=
require
(
'
crypto
'
)
const
{
cookieToJson
}
=
require
(
'
../util/index
'
)
module
.
exports
=
(
query
,
request
)
=>
{
module
.
exports
=
(
query
,
request
)
=>
{
if
(
typeof
query
.
cookie
===
'
string
'
)
{
query
.
cookie
=
cookieToJson
(
query
.
cookie
)
}
if
(
!
(
'
MUSIC_U
'
in
query
.
cookie
))
if
(
!
(
'
MUSIC_U
'
in
query
.
cookie
))
query
.
cookie
.
_ntes_nuid
=
crypto
.
randomBytes
(
16
).
toString
(
'
hex
'
)
query
.
cookie
.
_ntes_nuid
=
crypto
.
randomBytes
(
16
).
toString
(
'
hex
'
)
query
.
cookie
.
os
=
'
pc
'
query
.
cookie
.
os
=
'
pc
'
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录