0

因此,我可以使用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状态字段必须包含一个微博内容/分享的文本,超过140个汉字,文本中不能包含文本中必须包含的内容#,同时文本中必须包含一个“不分享到微博内容”的内容到微博的网页网址应该是该网页设置的URL,并且是在应用程序调用方)绑定域下的URL,绑定域下的URL,绑定的应用程序-应用信息-编辑信息-安全域”。</ p>

In chinese : 用户分享文字内容微博,必须做URLencode,内容不超过140个字符,文字不能包含“##主题词”,而文字必须至少包含一个第三方网页URL分享微博,并且URL只是第三方(调用方)绑定域下的URL链接,绑定域在“我的应用-应用信息-基本信息编辑应用-安全域”中设置。

statusstatuses/upload字段写着要发布的微博文本内容,必须做URLencode,内容不超过140个汉字。</p>

英文:发布微博文字内容,必须做URLencode,内容不超过140个字符。

因此,statusstatuses/share中需要 URL,但即使

  1. 我正在对其进行 URLencoding

  2. 我在安全域部分添加了一个域

  3. 我在其中传递域 URL status

    它仍然给我上述错误。

所以我假设status字段正在寻找我错过的某种格式。有人遇到并修复了这种异常吗?

4

2 回答 2

1

对不起,迟到的答案。希望这对将来的某人有所帮助。

微博 API 关于它所期望的可接受的参数格式非常不清楚。

因此,statuses/upload接受 a作为pic二进制文件string,您可以传入一个 URL,它会很好地发布它。statusstatus

但是,statuses/share也接受 a作为pic二进制string 但如果该 URL 域被添加为您的微博应用程序的应用程序信息中的安全域之一,则将接受 URL 。statusstatus

现在这就是我做错了。

我正在添加“ google.com ”,因为该框上的错误消息显示

“请填写主域名和二级域名……” 在此处输入图像描述

后来我决定添加完整的 URL ' www.google.com ',然后它就起作用了。

因此,当您尝试在安全域中仅保存“google”时,它不会允许您并会给您一条错误消息。当您尝试保存“google.com”时,它会让您保存它,但它无法找到您提供的任何 URL,例如“ http://www.google.com ”,并且会在以下情况下给您一条错误消息您尝试使用statuses/share发送它。您必须将“www.google.com”保存在安全域中,然后只有您才能在statuses/share的状态参数中传递“ http://www.google.com ”

希望我能够向那些带着这个错误来到这里的人清楚地解释它。

于 2017-07-04T09:48:21.827 回答
0

更新:

我现在确定,如果状态中共享 URL 的域与您的应用程序设置中设置的域不完全相同,则共享 API 将不起作用。

更糟糕的是,对于PC App,您只能为您的App设置一个域。因此,如果您将其设置为“主”域,那么您将无法共享子域中的 URL。

然而,变通的解决方案很简单:只需从您的“主”域共享一个 URL 并将其重定向到您的子域。假设你之前分享http://subdomain/abc过,那么你可以分享http://maindomain/share/abc,然后将后者重定向到前者。它涉及对 HTTP 配置的微小更改。以 apache 为例,您可以将此行添加到“主”服务器的配置中:

Redirect "/share" "http://subdomain"

而已!


我也有同样的问题。我怀疑这是因为您的状态中的 URL 指向的域不是您的应用程序设置中设置的域 - 即使指向绑定域的子域,它也不起作用。我正在与微博的支持进行沟通,并会在收到反馈时更新答案,尽管他们的支持总是很慢。

顺便说一句,Stackoverflow 似乎不支持纯中文答案。该死的!

于 2017-07-04T09:06:05.037 回答