0

私は、特に安らかなAPIを介したユーザー認証にかなり不慣れです。parse.comで設定されているユーザーでPythonを使用してログインしようとしています。以下は私が持っているコードです:

  API_LOGIN_ROOT = 'https://api.parse.com/1/login'
  params = {'username':username,'password':password}
  encodedParams = urllib.urlencode(params)

  url = API_LOGIN_ROOT + "?" + encodedParams

  request = urllib2.Request(url)

  request.add_header('Content-type', 'application/x-www-form-urlencoded')

  # we could use urllib2's authentication system, but it seems like overkill for this
  auth_header =  "Basic %s" % base64.b64encode('%s:%s' % (APPLICATION_ID, MASTER_KEY))
  request.add_header('Authorization', auth_header)
  request.add_header('X-Parse-Application-Id', APPLICATION_ID)
  request.add_header('X-Parse-REST-API-Key', MASTER_KEY)

  request.get_method = lambda: http_verb


  # TODO: add error handling for server response
  response = urllib2.urlopen(request)
  #response_body = response.read()
  #response_dict = json.loads(response_body)

これは、解析レストインターフェイスにアクセスするために使用されるオープンソースライブラリの変更です。

次のエラーが発生します。

Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__
    handler.post(*groups)
  File "/Users/nazbot/src/PantryPal_AppEngine/fridgepal.py", line 464, in post
    url = user.login()
  File "/Users/nazbot/src/PantryPal_AppEngine/fridgepal.py", line 313, in login
    url = self._executeCall(self.username, self.password, 'GET', data)
  File "/Users/nazbot/src/PantryPal_AppEngine/fridgepal.py", line 292, in _executeCall
    response = urllib2.urlopen(request)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 400, in open
    response = meth(req, response)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 513, in http_response
    'http', request, response, code, msg, hdrs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 438, in error
    return self._call_chain(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 372, in _call_chain
    result = func(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 521, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found

誰かが私を台無しにしている場所を教えてもらえますか?アクセスが拒否されたなどの問題ではなく、404が表示される理由がよくわかりません。

4

2 に答える 2

1

「ユーザー」クラスが特別なユーザー クラスとして Parse.com で作成されていることを確認します。クラスを追加するときは、必ずクラス タイプを「カスタム」ではなく「ユーザー」に変更してください。左側のクラス名の横に小さなユーザー ヘッド アイコンが表示されます。

Parse チームの Matt が問題を教えてくれるまで、これは長い間私を困惑させました。

于 2012-08-26T23:13:59.677 に答える
0

API_LOGIN_ROOT = 'https://api.parse.com/1/login'を次のように変更してください。API_LOGIN_ROOT = 'https://api.parse.com/1/login**/**'

を使用して同じ問題が発生し、最後PHPに を追加すると404エラーが/修正されました。

于 2013-03-29T15:18:42.560 に答える