所以我可以使用statuses/upload在微博帐号上发帖,但我无法使用statuses/share在微博帐号上发帖。
两者都将access_token
,status
,pic
作为multipart / form-data
的必填参数。
我收到以下错误
{"error":"text not find domain!","error_code":10017,"request":"/2/statuses/share.json"}
现在,我将异常来源缩小到status
字段,但我仍然无法解决它:
status
字段表示用户分享到微博的文本内容,必须做URLencode,内容不超过140个汉字,文本中不能包含“#话题词# “,同时文本中必须包含至少一个第三方分享到微博的网页URL,而该URL只能是该第三方(调用方)绑定域下的URL链接,绑定域在”我的应用 - 应用信息 - 基本应用信息编辑 - 安全域名“里设置。
英文版:用户分享文字内容微博,必须做URLencode,内容不超过140个字符,文字不能包含#### topic word,"虽然文本必须包含至少一个第三方网页URL才能共享微博,而URL只是第三方(调用者)绑定域下的URL链接,是我的应用程序中的绑定域 - 应用程序信息 - 基本信息编辑应用程序 - 安全域"在设置中。
状态/上传的 status
字段说要发布的微博文本内容,必须做URLencode,内容不超过140个汉字。
英文版:要发布微博文字内容,必须做URLencode,内容不超过140个字符。
因此,状态/分享中的status
需要网址,但即使
我正在传递域名网址status
。
它仍然给我上述错误。
所以我假设status
字段正在寻找一些我错过的格式。有人遇到并修复了这种异常吗?
答案 0 :(得分:1)
对不起,迟到了。希望这有助于将来的某个人。
微博API对于所期望的参数格式非常不清楚。
因此,状态/上传接受pic
作为二进制,status
作为字符串,您可以在status
中传递一个网址,它会将其发布得很好。
但是, status / share 也接受pic
作为二进制,status
作为字符串,但是,如果将此网址域添加为您的微博应用程序的应用程序信息中的安全域之一,status
将接受URL。
现在这就是我做错了。
我添加了' google.com ',因为该框上的错误消息显示
我后来决定添加完整的网址“ www.google.com ”,然后就可以了。
因此,当您尝试仅在安全域中保存“google”时,它将不允许您,并会给您一条错误消息。当您尝试保存“google.com”时,它会让您保存它,但它无法找到您提供的任何网址,例如“http://www.google.com”,并在您尝试发送时会显示错误消息它与状态/共享。您必须在安全域中保存“www.google.com”,然后只有您可以在 status / share 的状态参数中传递“http://www.google.com”
希望我能够清楚地向那些带着这个错误来到这里的人解释。
答案 1 :(得分:0)
更新
我现在确定,如果状态中共享URL的域名不完全是应用程序设置中设置的域,则共享API将无效。
更糟糕的是,对于PC App,您只能为您的应用设置一个域。因此,如果您将其设置为“主”域,则无法与子域共享网址。
但是,解决方法很简单:只需从“主”域共享一个URL,然后将其重定向到您的子域。假设您之前共享过http://subdomain/abc
,那么您可以共享http://maindomain/share/abc
,然后将后者重定向到前者。它涉及HTTP配置的微小更改。以apache为例,您可以将此行添加到“主”服务器的配置中:
Redirect "/share" "http://subdomain"
就是这样!
我有同样的问题。我怀疑这是因为您的状态中的URL指向应用程序设置中设置的域以外的域 - 即使指向绑定域的子域,它也不起作用。我正在与微博的支持进行沟通,并在获得反馈时更新答案,尽管他们的支持总是很慢。
BTW,似乎Stackoverflow不支持纯中文答案。该死的!