首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一电路OAuth2 -为什么主体从REST请求返回空[]?

统一电路OAuth2 -为什么主体从REST请求返回空[]?
EN

Stack Overflow用户
提问于 2019-06-22 02:04:54
回答 2查看 132关注 0票数 0

当我尝试使用我的OAuth2.0的令牌REST时,我一直在头文件中返回带有OK-200状态代码的主体下的空结果[]。

我创建了一个机器人,并使用curl +基本身份验证测试了rest,并使用swagger测试了这些API,它们运行得很好。我使用带有swagger标记的OAuth2.0测试了curl命令,这也很好。

我尝试了不同的设置来测试,但坚持了一个基础:

  • 我在定制应用程序下创建了一个Bot,Scopes是“All”,TTL是“永远的”。
  • 我通过REST成功地请求并接收了带有以下作用域的令牌:“READ_USER_PROFILE、WRITE_USER_PROFILE、READ_CONVERSATIONS、WRITE_CONVERSATIONS、READ_USER”。
  • 我注意到'ALL‘作用域不起作用,它返回"invalid_client,应用程序null没有为范围::=ALL启用“,但是同一个客户端除了'ALL’之外,没有上面提到的任何作用域,也没有单独的作用域。
  • 我确保我为我正在测试的其他API提供了必要的范围。“READ_CONVERSATIONS”表示"/conversations“
  • 我没有收到任何401或其他错误代码,只有200。
  • 我用swagger生成的令牌测试了相同的命令,其中一个命令返回带有结果的主体字符串(换句话说,这个令牌工作)
  • 我在Postman和PowerShell的Invoke-WebRequest/Invoke-RestMethod中复制了同样的问题。
  • 不确定这是否相关,但我注意到"OAuth应用程序“选项不再存在于”管理“> "OAuth应用程序”下的web应用程序: webclient中。"OAuth应用程序“选项卡,在”设置“>”电路实验室“中启用"OAuth应用程序”。
代码语言:javascript
复制
\\Requesting token:
curl -X POST https://circuitsandbox.net/oauth/token -d "client_id=myclientidhere&client_secret=myclientsecrethere&grant_type=client_credentials&scope=READ_USER_PROFILE,WRITE_USER_PROFILE,READ_CONVERSATIONS,WRITE_CONVERSATIONS,READ_USER" -i

{"access_token":"myaccesstokenhere","token_type":"Bearer","scope":["READ_USER_PROFILE","WRITE_USER_PROFILE","READ_CONVERSATIONS","WRITE_CONVERSATIONS","READ_USER"]}

\\Making request:
curl -i "https://circuitsandbox.net/rest/v2/conversations" -H "Authorization: Bearer myaccesstokenhere" -i
[]
代码语言:javascript
复制
\\\Full sample (-i parameter):
\\Requesting token:
curl -X POST https://circuitsandbox.net/oauth/token -d "client_id=myclientidhere&client_secret=myclientsecrethere&grant_type=client_credentials&scope=READ_USER_PROFILE,WRITE_USER_PROFILE,READ_CONVERSATIONS,WRITE_CONVERSATIONS,READ_USER" -i

HTTP/1.1 200 OK
Date: Sat, 22 Jun 2019 01:21:43 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 179
Connection: keep-alive
access-control-allow-origin: *
access-control-allow-credentials: true
access-control-allow-methods: GET, POST, DELETE, PUT, PATCH, OPTIONS
access-control-allow-headers: Accept, Accept-Language, User-Agent, Origin, Connection, Host, Accept-Encoding, Authorization, Content-Type, api_key, apiKey
ETag: W/"b3-K441G+yOERm+Qhj2E8VpkzO8ISg"
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=157680000; includeSubdomains; preload

{"access_token":"myaccesstokenhere","token_type":"Bearer","scope":["READ_USER_PROFILE","WRITE_USER_PROFILE","READ_CONVERSATIONS","WRITE_CONVERSATIONS","READ_USER"]}

\\Making request:
curl -i "https://circuitsandbox.net/rest/v2/conversations" -H "Authorization: Bearer myaccesstokenhere"

HTTP/1.1 200 OK
Date: Sat, 22 Jun 2019 01:25:37 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 2
Connection: keep-alive
access-control-allow-origin: *
access-control-allow-credentials: true
access-control-allow-methods: GET, POST, DELETE, PUT, PATCH, OPTIONS
access-control-allow-headers: Accept, Accept-Language, User-Agent, Origin, Connection, Host, Accept-Encoding, Authorization, Content-Type, api_key, apiKey
ETag: W/"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w"
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=157680000; includeSubdomains; preload

[]

我期望输出包括请求的主体输出。

代码语言:javascript
复制
{"type":"COMMUNITY","convId":"5fad5fa4-1097-d66f-083a-3f129214e99f","participants":["5fad5fa4-1097-d66f-083a-3f129214e99f","5fad5fa4-1097-d66f-083a-3f129214e99f","5fad5fa4-1097-d66f-083a-3f129214e99f","5fad5fa4-1097-d66f-083a-3f129214e99f"],"topic":"YourCompany","creationTime":1560992185888,"modificationTime":1561143383261,"creatorId":"5fad5fa4-1097-d66f-083a-3f129214e99f","creatorTenantId":"5fad5fa4-1097-d66f-083a-3f129214e99f","description":"Default open conversation for YourCompanyHere"}

但实际输出是:[ ]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-22 02:27:37

刚刚测试过了,我得到了对话(和社区) returned.This不会返回您的对话,但是机器人是对话的成员之一。确保机器人是对话的成员。

票数 1
EN

Stack Overflow用户

发布于 2019-06-24 19:58:03

正如在上面的回复中提到的,这是我丢失的部分内容,即使在对话中添加了机器人之后,我仍然得到了空白。我也面临着各种奇怪的问题,例如,当我试图把旧的机器人添加到新的对话中时,会出现错误等等。原因是我在电路沙箱帐户和机器人上使用相同的电子邮件地址,所以可能会产生冲突。简而言之,这就是对我起作用的原因:

1.使用与我的沙箱帐户不同的电子邮件地址(甚至是假的电子邮件工作)创建了新的bot

2.通过电子邮件地址将bot添加到会话中(bot名称没有删除)-谢谢@Roger

3.运行相同的命令来创建令牌并使用API,这次它成功了!

帮助解决它,发布和修复一个同事在不同的沙箱(谢谢里基埃尔-卡西姆!),测试在邮递员,卷发和PowerShell。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56712073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档