我们希望使用解析来跟踪用户在我们的kivy应用中的得分。我们的应用程序需要编码安全登录,因此当我们尝试将用户的解析信息(例如,objectId,用户名等)链接到他们的分数时,我们会收到以下错误:parse_rest.core.ResourceRequestLoginRequired:save需要登录会话
此消息由parse_rest user.py中的第26行抛出。我们当前的代码尝试提供解析sessionToken,但由于某种原因它不起作用。请帮助我们弄清楚如何让这段代码起作用:
main.py(注意:我们的会话令牌在我们的LoginScreen类中被识别并设置为'sessionToken'。我们知道这是有效的,因为我们可以使用'print LoginScreen.sessionToken'在执行方法时打印会话令牌任何应用程序的类)
def game_score(self):
userScore = User(score="")
import json,httplib
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()
connection.request('PUT', '/1/users/objectId', userScore.save(),
{"X-Parse-Application-Id": "Parse_app_id",
"X-Parse-REST-API-Key": "Parse_rest_API_key",
"X-Parse-Session-Token": LoginScreen.sessionToken})
gameScore = GameScore(score='user_score_pulled_from_game_screen')
gameScore.save()
User.score = gameScore
import json,httplib
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()
connection.request('PUT', '/1/users/objectId', userScore.save(),
{"X-Parse-Application-Id": "Parse_app_id",
"X-Parse-REST-API-Key": "Parse_rest_API_key",
"X-Parse-Session-Token": LoginScreen.sessionToken})
pass
作为一个fyi,我们使用的代码结构来自Parse文档的“更新用户”部分:https://parse.com/docs/rest
提前致谢
答案 0 :(得分:1)
这可以使用ParsePy来完成,在User和GameScore之间创建One-to-One关系。登录功能将阻止您收到的ResourceRequestLoginRequired错误。此外,使用此方法,不需要会话令牌。
def update_game_score(self):
user = User.login(<username>, <password>)
gameScore = GameScore(score='user_score_pulled_from_game_screen')
gameScore.save()
user.gameScores = gameScore
user.save()
答案 1 :(得分:0)
实际上,经过一些工作后,我们找到了一个更强大的解决方案,将User表中的gameScores列直接绑定到gameScore表:
def update_game_score(self):
user = User.login(username, password)
try:
user.gameScores
except AttributeError:
gameScore = GameScore(TotalScore=self.manager.get_screen('game_home_screen').score)
gameScore.save()
user.gameScores = gameScore
user.save()
else:
gameScore = user.gameScores
gameScore.TotalScore += self.manager.get_screen('game_home_screen').score
gameScore.save()
如何执行此操作的方法来自ParsePy文档的“用户”部分:https://github.com/dgrtwo/ParsePy