【发布时间】:2014-08-02 09:53:48
【问题描述】:
我收到一个错误,我没有通过身份验证,但我是。否则我无法发布正常的推文(只是文本)或使用 Twitter API 1.1 中的所有 GET 函数。
我做了什么:
我编写了自己的类扩展 Zend_Service_Twitter(Twitter API 的抽象,它提供了对 API 的轻松访问)。我对其进行了扩展以实现 API 的更多端点。例如“状态/update_with_media”。这些函数的功能类似于其他函数(首先是 init(),设置参数,最后调用 post 函数)。我已将 Zend_Http_Client 中的 EncType 设置为“multipart/form-data”,因为它记录在 API 中 . GET 请求工作正常,GET account/verify_credentials 也工作。但是POST出现这个错误:
ErrorMessage: 无法验证您的身份
错误代码:32
使用
Zend 1.12.5
PHP 5.3.14
示例请求:
POST /1.1/statuses/update_with_media.json HTTP/1.1
Host: api.twitter.com
Connection: close
Accept-encoding: gzip, deflate
User-Agent: Zend_Http_Client
Cookie:twid=u%3D1725343788%7CY611pVKbM7CH6i%2Br1Ni%2BkeuSXfU%3D;_twitter_sess=BAh7CDoPY3JlYXRlZF9hdGwrCGmjH4tGAToMY3NyZl9pZCIlMGFlNzY5ZDVh%250AMGQ3OThjNGU5YzE1ZjA3YTZmN2I4ZjM6B2lkIiU4ZWJkNTRhOTNhNjhiMGIz%250ANzZjMzYxMTEyZWU3Y2E2Yg%253D%253D--a632ea1411849916ca5399f9654a241b0a70a17f;guest_id=v1%3A140249344476018229;lang=de;
Accept-Charset: ISO-8859-1,utf-8
Authorization: OAuth realm="",oauth_consumer_key="bBmTZTbVaziLelczV7VwqBa1U",oauth_nonce="df79065c315b5ed8d690c92a8016cece",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1402493472",oauth_version="1.0",oauth_token="1725343788-CxwJ3G6HRl0POkrqz6dl6HZImgFdeSzNucyqNkI",oauth_signature="z%2BuRj%2FEyWbo4ym12uYoQdOob%2Bmc%3D"
Content-Type: multipart/form-data; boundary=---ZENDHTTPCLIENT-6c7c5ce101c5dcf5f666f17e1a10486b
Content-Length: 71108
-----ZENDHTTPCLIENT-6c7c5ce101c5dcf5f666f17e1a10486b
Content-Disposition: form-data; name="status"
sorjghkl sdaghl
-----ZENDHTTPCLIENT-6c7c5ce101c5dcf5f666f17e1a10486b
Content-Disposition: form-data; name="media[]"
..... here is the binary picture (access with the function file_get_contents(realpath($src)))...
【问题讨论】:
-
看看这些常见的陷阱; dev.twitter.com/docs/uploading-media
-
Ty 但我没有发现任何问题。我的照片的最大文件大小为 70.826 字节,所以没问题。每个状态更新的最大媒体数量为 1。用户有一个单独的、已发布的每日媒体上传限制,与他们未发布的每日状态更新限制无关……我没有今天或昨天在推特上发布了任何照片...图片为 .jpg 并带有原始二进制数据中的 file_getcontents 函数
标签: php zend-framework twitter