我在使用 Slack 登录以按照我希望的方式工作时遇到了一些问题。具体来说,我正在寻求构建一个平台,人们可以将其用于他们的 Slack 工作区,并且根据他们登录的工作区,会显示不同的内容(在这种情况下,保存的 Slack 帖子)。
我已按照 Slack 提供的教程将使用 Slack 登录到我的网站。我用
https://slack.com/oauth/v2/authorize?user_scope=identity.basic,identity.email,identity.team,identity.avatar&client_id
触发进程。我的重定向 URI 将代码参数传递到这里
@csrf_exempt
@api_view(['GET', 'POST'])
def auth(request):
code = request.data['code']
url = 'https://slack.com/api/oauth.v2.access?client_id={}&client_secret={}&code={}'.format(SLACK_CLIENT_ID, SLACK_CLIENT_SECRET, code)
response = requests.get(url)
response_dict = json.loads(response.text)
print(response_dict)
if response_dict.get('ok'):
user_id = response_dict['authed_user']['id']
team_id = response_dict['team']['id']
access_token = response_dict['authed_user']['access_token']
client = WebClient(token=access_token)
user_profile = client.users_identity()
email = user_profile.get('user').get('email')
display_name = user_profile.get('user').get('name')
image = user_profile.get('user').get('image_48')
userObject = User.objects.get_or_create(username= user_id + team_id, user_id=user_id, team_id=team_id, email=email)[0]
userObject.first_name=display_name
userObject.last_name=''
userObject.image=image
userObject.save()
response_dict['model_id'] = userObject.id
return Response(json.dumps(response_dict), status=status.HTTP_200_OK)
else:
return Response(None, status=status.HTTP_400_BAD_REQUEST)
我有几个问题。
babeljs.slack.com/oath...
)中手动输入不同的工作区时,整个过程似乎被完全跳过,并且在此示例中,我获得了与 babeljs 工作区不同的工作区的团队 ID。关于为什么会这样的任何线索?主要是,我正在寻找一种让人们访问我的网站的方法,因为他们有自己独特的 Slack 工作区,鉴于 Slack 似乎对自动重定向有多么挑剔,我无法想出一种方法可以让他们轻松访问。
感谢任何帮助!