关于搭建微信平台中的有道翻译

陈旭成 发布于 2014/03/20 17:38
阅读 376
收藏 0

@Kevin_Yang 你好,想跟你请教个问题:

# -*- coding: utf-8 -*-
import hashlib
import web
import lxml
import time
import os
import urllib2,json,urllib
from lxml import etree
import pylibmc
import random
import json


class WeixinInterface:


def __init__(self):
       self.app_root = os.path.dirname(__file__)
            self.templates_root = os.path.join(self.app_root, 'templates')
            self.render = web.template.render(self.templates_root)
        
def GET(self):
data = web.input()
signature=data.signature
timestamp=data.timestamp
nonce=data.nonce
echostr=data.echostr
token="chenxucheng"
list=[token,timestamp,nonce]
list.sort()
sha1=hashlib.sha1()
map(sha1.update,list)
hashcode=sha1.hexdigest()
        
if hashcode == signature:
           return echostr
            #return  '欢迎光临'
            
def POST(self):
        str_xml = web.data()
                xml = etree.fromstring(str_xml)
                content=xml.find("Content").text
                msgType=xml.find("MsgType").text
                fromUser=xml.find("FromUserName").text
                toUser=xml.find("ToUserName").text
            
def youdao(word):
        qword = urllib2.quote(word)
                baseurl =r'http://fanyi.youdao.com/openapi.do?keyfrom=phantomape93&key=515629885&type=data&doctype=<doctype>&version=1.1&q='
                url = baseurl+qword
                resp = urllib2.urlopen(url)
                fanyi = json.loads(resp.read())
                if fanyi['errorCode'] == 0:
                    if 'basic' in fanyi.keys():
                        trans = u'%s:\n%s\n%s\n网络释义: \n%s'%(fanyi['query'],''.join(fanyi['translation']),''.join(fanyi['basic']['explains']),''.join(fanyi['web'][0]['value']))
                        return trans
                    else:
                        trans =u'%s:\n基本翻译:%s\n'%(fanyi['query'],''.join(fanyi['translation'])) 
                        return trans
                elif fanyi['errorCode'] == 20:
                            return u'对不起,翻译文本过长'
                elif fanyi['errorCode'] == 30:
                            return u'对不起,无法进行有效的翻译'
                elif fanyi['errorCode'] == 40:
                            return u'对不起,不支持的语言类型'
                else:
                        return u'对不起,不知道你在说啥'% word
                    
                if type(content).__name__ == "unicode":
                            content = content.encode('UTF-8')


                Nword = fanyi.youdao(content)
                return self.render.reply_text(fromUser,toUser,int(time.time()),Nword)
请问这段代码哪里有问题?实在不知道哪里不行

加载中
0
Kevin_Yang
Kevin_Yang
请把你的代码发我邮箱吧,你这样的代码看不出来缩进,不知道问题到底出在哪?
0
Kevin_Yang
Kevin_Yang
yanxingyang#gmail.com 
陈旭成
陈旭成
代码已经发给你了,麻烦你帮我看看哪里出了问题,谢谢啦
0
Kevin_Yang
Kevin_Yang

除去缩进问题以后,你的这句话

 Nword = fanyi.youdao(content) 

有问题,不是fanyi模块下的youdao()方法,而就是youdao()方法

改为Nword = youdao(content) 再试试

陈旭成
陈旭成
我试过了,但是我的订阅号还是没有什么反应,发过去的东西都没有回复1
0
Kevin_Yang
Kevin_Yang

引用来自“Kevin_Yang”的答案

除去缩进问题以后,你的这句话

 Nword = fanyi.youdao(content) 

有问题,不是fanyi模块下的youdao()方法,而就是youdao()方法

改为Nword = youdao(content) 再试试

如果排除了缩进问题还是不行,你把你的程序打个包发给我
0
Kevin_Yang
Kevin_Yang
然后在SAE的日志中心切换到debug模式看看提示什么错误,也一并发过来
返回顶部
顶部