Cordova Oauth将base64图像发布到Twitter

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.

基本上,我正试图通过这个url将
base64图像上传到twitter
upload.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设备