相关文章

更多

最近更新

更多

微信公众号接口添加菜单时错误(errcode":40017 invalid button type)

2019-03-02 00:05|来源: 网路

POST提交时总是报错:

{"errcode":40017,"errmsg":"invalid button type"}

最后查出来是由于数据中有中文引起的

解决:

data = {"button":[

                      {"name": u"会员服务",

                       "sub_button":[

                                     {"type":"click","name":u"健康咨询","key":"JKZX"},

                                     ]

                       },

                      {"name":u"申请加入","sub_button":[

                                                    {"type":"view","name":u"企业入会申请","url": ""},

                                                    ]

                       },

                      {"type":"view","name":u"关于","url":""}

                      ]

            }

    url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token=。。。'

    data = simplejson.dumps(data, ensure_ascii=False).encode('utf-8')

    #加上参数ensure_ascii=False 后 提交的数据中的中文就不会再被转码,然后再编下UTF-8

    print data

    req = urllib2.Request(url)  

    req.add_header('Content-Type', 'application/json')

    req.add_header('encoding', 'utf-8')  

    response = urllib2.urlopen(req, data)  

    result = response.read()

    print result



转自:http://my.oschina.net/zuoan001/blog/304867

相关问答

更多

这是一个描述差异的页面 (基本上你可以把html放到一个<button></button> ) 和另一页描述为什么人们避免<button></button> (提示:IE6) 使用<button />时的另一个IE问题: 而当我们在谈论IE时,它有几个与按钮宽度相关的错误。 当您尝试添加样式时,会神秘地添加额外的填充,这意味着您必须添加一个小黑客来控制它们。 Here's a page describing the differences (basically you can put html i ...

当AngularJS表单无效时,禁用提交按钮(Disable submit button when form invalid with AngularJS)

您需要使用您的表单的名称,以及ng禁用: 这是Plunker的演示 <form name="myForm"> <input name="myText" type="text" ng-model="mytext" required /> <button ng-disabled="myForm.$invalid">Save</button> </form> You need to use the name of your form, as well as ng-disabled: H ...

如果$ invalid,则禁用按钮角度(disable button angular if $invalid)

我会把它们作为答案,以便于访问。 addressForm在您引用它的(外部)作用域中不存在。 它只能在存在的<form>元素中引用。 您需要将这些控件放在<form> ,以便它们起作用。 您的表单是否知道您是否正在编辑? 因为如果是这样,您可以将这些按钮移动到表单中,然后使用ng-if="ctrl.isEditing" 。 当然, ctrl.isEditing将替换为您知道是否有可用编辑的任何方法。 I'll put them as an answer for easier access. add ...

void是这个变量的无效类型(void is an invalid type for this variable)

您的onRadioButtonClicked包含在您的onCreate方法中 - 使它们分开的方法。 在以下情况下添加右括号} : setContentView(R.layout.activity_main_page); Your onRadioButtonClicked is contained within your onCreate method—make them separate methods. Add a closing brace } after: setContentView ...

Paypal IPN通过立即购买按钮返回INVALID但是使用IPN Simulator验证(Paypal IPN returns INVALID with buy now button But VERIFIED with IPN Simulator)

我很确定这只是发布数据顺序的问题。 使用来自https://github.com/orderly/codeigniter-paypal-ipn的代码,它就像魅力一样! 希望这个答案能帮助别人并节省时间。 I'm pretty sure it was just problem with order of post data. Used code from https://github.com/orderly/codeigniter-paypal-ipn and it works like charm ...

添加按钮时元素类型无效(Element type invalid when adding button)

确保您使用的是正确版本的React Native。 Button组件是在React Native版本0.37中引入的 Make sure you are using correct version of React Native. Button component was introduced in React Native version 0.37

使用$ error,$ invalid无法显示表单错误(Form error not displayed using $error, $invalid)

1)未禁用提交按钮 你有一个错误,必须ng-disabled 。 同时更改您的条件以在无效时禁用它: - <button type='submit' ng-disabled="main_form.$invalid">Submit All</button> 2)未显示所需字段的错误。 现在,当您删除键入的值时,它将显示出来 3)如果我点击提交,我也会获得$ hash密钥以及提醒。 这是为什么? Angular添加一个唯一键($$ hashkey)来跟踪重复的项目。 如果您在ng-repeat中指 ...

失败的道具类型:提供给`Button`的类型`object`的无效道具`label`,期望的`string`(Failed prop type: Invalid prop `label` of type `object` supplied to `Button`, expected `string`)

如果由于某种原因,您无法使用组件,则可以使用I18n.t和I18n.l帮助程序: var I18n = require('react-redux-i18n').I18n; I18n.t('application.title'); // => returns 'Toffe app met i18n!' for locale 'nl' 这是你的情况,你不想使用组件的“原因”是因为你需要将翻译后的文本作为string prop传递给Button组件。 所以,你可能想要这样的东西: import {I ...

为什么表单无效?(Why the form is invalid?)

您的视图在表单有效时执行操作,但是当表单无效时,则不会运行执行重定向的块,并且该方法退出而不执行任何操作,默认情况下返回None。 当form.is_valid()返回false时,您将需要添加一些操作来处理这种情况,例如错误消息或错误页面重定向。 Your view takes action when the form is valid, but when the form is not valid then the block that does the redirect is not run ...