Cordova Oauth将base64图像发布到Twitter
基本上,我正试图通过这个url将Cordova Oauth将base64图像发布到Twitter,cordova,http,post,twitter,media,Cordova,Http,Post,Twitter,Media,基本上,我正试图通过这个url将base64图像上传到twitterupload.twitter.com/1.1/media/upload.json。我阅读并尝试了很多方法将(http)base64图像发布到twitter上,但都没有成功。这是我的密码 /* creating sign. first */ createTwitterSignature('POST', 'https://upload.twitter.com/1.1/media/upload.
base64图像上传到twitterupload.twitter.com/1.1/media/upload.json
。我阅读并尝试了很多方法将(http)base64图像发布到twitter上,但都没有成功。这是我的密码
/* creating sign. first */
createTwitterSignature('POST', 'https://upload.twitter.com/1.1/media/upload.json', tuserTWToken, tuserTWSecret, postMessage, base64B);
/* http post*/
$http({
method: "post",
url: "https://upload.twitter.com/1.1/media/upload.json",
params: {
media: base64B
},
headers: {
"Content-Type": "multipart/form-data"
}
}).success(function (result) {
console.log("OMSSMSS::: " + result);
}).error(function (error) {
console.log("TWWWERROR: " + JSON.stringify(error));
});
//Create the Signature
function createTwitterSignature(method, url, usertoken, usersecret, message, mediaData) {
console.log("creating sign.");
var oauthObject = {
oauth_consumer_key: clientId,
oauth_nonce: $cordovaOauthUtility.createNonce(32),
oauth_signature_method: "HMAC-SHA1",
oauth_token: usertoken,
oauth_timestamp: Math.round((new Date()).getTime() / 1000.0),
oauth_version: "1.0",
};
var signatureObj = $cordovaOauthUtility.createSignature(method, url,
oauthObject, {
media: mediaData
}, clientSecret, usersecret);
$http.defaults.headers.common.Authorization =
signatureObj.authorization_header;
console.log("Done sign");
}
它返回错误,但不返回错误代码。答复:
TWWW错误:“”
我不明白这里出了什么问题。两天后我终于解决了。
这是代码
createTwitterSignature('POST', 'https://upload.twitter.com/1.1/media/upload.json', tuserTWToken, tuserTWSecret, postMessage, base64B);
$http({
method: "post",
url: "https://upload.twitter.com/1.1/media/upload.json",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
transformRequest: function (obj) {
var str = [];
for (var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
data: {
media_data: base64B
}
}).success(function (result) {
console.log("OMSSMSS::: " + result);
}).error(function (error) {
console.log("TWWWERROR: " + JSON.stringify(error));
});
//Create the Signature
function createTwitterSignature(method, url, usertoken, usersecret, message, mediaData) {
console.log("creating sign.");
var oauthObject = {
oauth_consumer_key: clientId,
oauth_nonce: $cordovaOauthUtility.createNonce(32),
oauth_signature_method: "HMAC-SHA1",
oauth_token: usertoken,
oauth_timestamp: Math.round((new Date()).getTime() / 1000.0),
oauth_version: "1.0"
};
var signatureObj = $cordovaOauthUtility.createSignature(method, url,
oauthObject, {
media_data: mediaData
}, clientSecret, usersecret);
$http.defaults.headers.common.Authorization =
signatureObj.authorization_header;
console.log("Done sign");
}
你是如何调试你的应用程序的?试着在没有JSON的情况下打印错误对象。stringify
@JoseRojas如果我没有JSON,它将返回空。stringify你在设备或浏览器中测试你的应用程序?如果是在浏览器中,网络
选项卡中显示了什么?@JoseRojas设备