2013-08-07 1 views
1

Я пытаюсь открыть канал путем копирования и вставки маркеров в поле ввода, однако консоль возвращается,маркер канала Google App Engine недействителен

Invalid + лексемы.

Вот код для локального хоста: 8080/

<html> 
    <head> 
    <script type="text/javascript" src="https://talkgadget.google.com/talkgadget/channel.js"></script> 
    <script> 
     function OpenChannel(){ 
     channel = new goog.appengine.Channel(document.getElementById('Token').value); 
     socket = channel.open(); 
     socket.onmessage = function(message){ 
      console.log(message); 
     } 
     socket.onopen = function(){ 
      connected = true; 
      console.log('opened'); 
     } 
     socket.onerror = function(err){ 
      console.log(err.description); 
     } 
     socket.onclose = function(){ 
      console.log('closed'); 
     } 
     } 
    </script> 
    </head> 
    <body> 
     Token: <input id="Token"></input><br/> 
     <button onclick="OpenChannel()">Open Channel</button> 
    </body> 
</html> 

Я создаю маркер открытием, "локальный: 8080/лексем имя = ...", который записывает маркер канала на страницу. Вот класс питона для этой страницы:

class TokenPage(webapp2.RequestHandler): 
    def get(self): 
    token = channel.create_channel(self.request.get('name')) 
    self.response.write(token) 

Я довольно много копировал документацию линию для линии, так что я понятия не имею, что происходит неправильно.

Решение:

заменить

<script type="text/javascript" src="https://talkgadget.google.com/talkgadget/channel.js"></script>

с

<script type="text/javascript" src="/_ah/channel/jsapi"></script> .

+0

И если вы не хотите или не можете использовать тег сценария вы можете импортировать его с ним: https://github.com/Fantasim/app-engine-channel -js-api – Fantasim

ответ

1

Вы пробовали:

channel = new goog.appengine.Channel(document.getElementById('Token').value); 
+0

Я по-прежнему получаю ту же ошибку, но, видя, что .innerHTML возвращает "", я, вероятно, должен изменить свой вопрос. – cinderblock

+0

Возможно, вам захочется отладить ваш javascript и убедиться, что вы действительно отправляете правильный токен. – dragonx

+0

Я решил это, я положу решение в конце вопроса. – cinderblock