Twitch TV Appel de l'API Génère l'Erreur 400 en FGA

J'ai rencontré ce problème dans le passé, et ont été en mesure de travailler autour d'elle jusqu'à maintenant. Lors d'un appel à la Contraction de l'API dans app engine, j'obtiens une Erreur 400. J'ai été à la google groupes contraction de la page, ainsi que twitch tv propre forum.

J'ai pu parler à une tonne de gens à Twitch TV, ainsi que d'App Engine, et à pas de chance ai-je été en mesure de résoudre ce problème. Dans l'espoir de clarifier ma question, j'ai été en mesure de faire une application simple à reproduire directement ce qui se passe quand j'essaie de faire un URL appel à Twitch TV API.

Résumé:

C'est le code simple qui échoue lorsque mon application est déployée, mais fonctionne parfaitement dans le localhost de l'environnement:

import webapp2
import urllib2

class MainHandler(webapp2.RequestHandler):
    def get(self):
    url = ('https://api.twitch.tv/kraken/streams/nl_kripp')
        contents = urllib2.urlopen(url)
    self.response.out.write(contents.read())


app = webapp2.WSGIApplication([('/', MainHandler)],
                              debug=True)

Ici est ce que cette application génère lorsque vous en cours d'exécution sur l'hôte local (comme il est supposé trop):

{"flux":{"nom":"live_user_nl_kripp","jeu":"Guild Wars 2","viewers":3229,"_links":{"self":"https://api.twitch.tv/kraken/streams/nl_kripp"},"_id":3681678672,"broadcaster":"fme","channel":{"game":"Guild Wars 2","name":"nl_kripp","created_at":"2012-04-15T02:25:31Z","teams":[{"name":"nolife","created_at":"2012-06-20T23:48:51Z","background":null,"updated_at":"2012-06-20T23:49:08Z","banner":null,"_links":{"self":"https://api.twitch.tv/kraken/teams/nolife"},"_id":330,"logo":null,"info":"\n","display_name":"noLife"}],"banner":null,"updated_at":"2012-08-26T21:12:55Z","background":"http://static-cdn.jtvnw.net/jtv_user_pictures/nl_kripp-channel_background_image-527e8b792a46df22.png","url":"http://www.twitch.tv/nl_kripp","logo":"http://static-cdn.jtvnw.net/jtv_user_pictures/nl_kripp-profile_image-267fd5e2fb95a15d-300x300.png","_id":29795919,"_links":{"stream_key":"https://api.twitch.tv/kraken/channels/nl_kripp/stream_key","self":"https://api.twitch.tv/kraken/channels/nl_kripp","chat":"https://api.twitch.tv/kraken/chat/nl_kripp","commercial":"https://api.twitch.tv/kraken/channels/nl_kripp/commercial","features":"https://api.twitch.tv/kraken/channels/nl_kripp/features"},"mature":null,"video_banner":"http://static-cdn.jtvnw.net/jtv_user_pictures/nl_kripp-channel_offline_image-f3ad1124bc19cffd-640x360.png","display_name":"nl_Kripp","status":"nolife Kripparrian -- GW2 Ranger Lvling. Serveur = Maguuma"},"preview":"http://static-cdn.jtvnw.net/previews/live_user_nl_kripp-630x473.jpg","partner":true},"_links":{"self":"https://api.twitch.tv/kraken/streams/nl_kripp"}}

Et maintenant exactement la même application dans l'App Engine environnement:

http://urltestingsite.appspot.com/

J'ai passé un bon moment à essayer de résoudre ce problème car c'est une grande chaîne de lien dans mon site web. Quelqu'un, qui n'ont aucune idée de pourquoi cela se produit?

MODIFIER - c'est le code de mon application réelle:

def check_if_live(self, b):
    url = ('https://api.twitch.tv/kraken/streams/%s' %b)
    url2 = urlfetch.fetch(url, headers = {'User-Agent': "suitegamer_User-Agent"}) 
    contents = urllib2.urlopen(url2)
    if (contents.read()).find('{"stream":null,') == 0:
        return 'Offline'
    else:
        return 'Live'

Ce code est de retour cette AttributeError:

AttributeError: '_URLFetchResult' object has no attribute 'get_type'
InformationsquelleAutor suitegamer | 2012-08-27