J'ai passé la dernière journée à travailler avec un groupe pour créer une application facebook qui calcule le coefficient de cluster d'un utilisateur (une mesure de l'interdépendance de leurs amis.)
Pour accomplir Ceci, j'ai besoin d'obtenir le nombre d'amis communs l'utilisateur avec chacun de leurs amis. Malheureusement, je continue à obtenir un urllib2.HTTPError, et je ne peux pas comprendre ce qui se passe. Vous pouvez accéder à l'application (et au message d'erreur + traceback) au https://gentle-stream-3754.herokuapp.com/.Python - Heroku urllib2.HTTPError
La ligne 168 en particulier faisait partie de la traçabilité. Je sais que le code ci-dessous ne sera probablement pas utile sans contexte, c'est pourquoi j'ai inclus un lien vers l'application.
Cela peut-il poser un problème avec les autorisations d'utilisateur? Runtime?
Toute aide serait appréciée! Merci d'avance!
EDIT: access_token semble être un objet NoneType, mais je ne sais pas exactement pourquoi. Cela pourrait-il causer l'erreur urllib2.HTTPError?
164 def clustering_coefficient():
165
166 access_token = get_token()
167 g = Graph(access_token)
168 requests = [{'method': 'GET', 'relative_url': 'me/mutualfriends/%s' % x['id']} for x in g.me.friends()['data']]
169 k_v = len(requests)
170 if k_v < 2:
171 return 0.0
172
173 n_v = 0
174 REQS_PER_POST = 50
175 for i in range((k_v // REQS_PER_POST)+1):
176 result = g.post(batch=json.dumps(requests[i*REQS_PER_POST:(i+1)*REQS_PER_POST]))
177 for r in result:
178 body = json.loads(r['body'])
179 n_v += len(body['data'])
180
181 return 1.0 * n_v/k_v/ (k_v-1)
Exception: HTTPError: Erreur HTTP 400: Bad Request
Traceback:
Traceback (most recent call last)
File "/app/lib/python2.7/site-packages/flask/app.py", line 1306, in __call__
return self.wsgi_app(environ, start_response)
File "/app/lib/python2.7/site-packages/flask/app.py", line 1294, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/app/lib/python2.7/site-packages/flask/app.py", line 1292, in wsgi_app
response = self.full_dispatch_request()
File "/app/lib/python2.7/site-packages/flask/app.py", line 1062, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/app/lib/python2.7/site-packages/flask/app.py", line 1060, in full_dispatch_request
rv = self.dispatch_request()
File "/app/lib/python2.7/site-packages/flask/app.py", line 1047, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/app/exampleapp.py", line 168, in clustering_coefficient
requests = [{'method': 'GET', 'relative_url': 'me/mutualfriends/%s' % x['id']} for x in g.me.friends()['data']]
File "/app/lib/python2.7/site-packages/facegraph/graph.py", line 157, in __call__
data = json.loads(self.fetch(self.url | params))
File "/app/lib/python2.7/site-packages/facegraph/graph.py", line 203, in fetch
conn = urllib2.urlopen(url, data=data)
File "/usr/local/lib/python2.7/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "/usr/local/lib/python2.7/urllib2.py", line 400, in open
response = meth(req, response)
File "/usr/local/lib/python2.7/urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/lib/python2.7/urllib2.py", line 438, in error
return self._call_chain(*args)
File "/usr/local/lib/python2.7/urllib2.py", line 372, in _call_chain
result = func(*args)
File "/usr/local/lib/python2.7/urllib2.py", line 521, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
Pouvez-vous inclure la trace complète et l'exception? – girasquid
Bien sûr! J'aurais dû le faire en premier lieu. MISE À JOUR: Traceback et exception ajoutés. –