2015-10-29 2 views
1

Я разрабатываю приложение. Я сделал Вход с использованием OAuth. Теперь я хочу опубликовать изображение на мой счет в Twitter. Но каждый раз, когда я получаю сообщение об ошибке «Поверхность над ошибкой». Я пытался использовать как медиа, так и media_data после преобразования моей String в Base64. Я пытаюсь использовать Ionic и Angular JS. Вы также можете предложить мне любое другое решение. Мой код ниже.Изображение на Twitter

 var clientId = "**************"; 
     var clientSecret = "*****************"; 
     /** Twitter oauth for User Details **/ 
     // Accessing profile info from twitter 
     var oauthObject = { 
      oauth_consumer_key: clientId, 
      oauth_nonce: $cordovaOauthUtility.createNonce(10), 
      oauth_signature_method: "HMAC-SHA1", 
      oauth_token: token.oauth_token, 
      oauth_timestamp: Math.round((new Date()).getTime()/1000.0), 
      oauth_version: "1.0" 
     }; 
     var signatureObj = $cordovaOauthUtility.createSignature("POST", "https://upload.twitter.com/1.1/media/upload.json" , oauthObject, { }, clientSecret, token.oauth_token_secret); 
     $http.defaults.headers.common.Authorization = signatureObj.authorization_header; 
     //$http.post(url, {media_data: 'base64'},{headers: { 'Content-Type': 'multipart/form-data'}}).success(function(
     $http.post(url, {media: 'Image URL'},{headers: { 'Content-Type': 'multipart/form-data'}}).success(function(result) { 
      console.log(result) 
      }) 
      .error(function(result) { 
       console.log(result) 
      }); 

Любое тело может помочь мне в этой проблеме.

+0

Сколько у вас большое изображение? Работает ли он только с отправкой твитов? Сообщите нам ваш общий размер. благодаря! – Gene

+0

@Gene Изображение меньше, чем 5Mb, и оно отлично работает только для чтения. –

+0

Попробуйте опустить его ниже 3mb и попробуйте. – Gene

ответ

1

Я попытался это:

https://github.com/saimon24/ng-twitter

https://devdactic.com/twitter-rest-api-angularjs/

Я послал Base64 строку в сообщение запроса.

var MEDIA_UPLOAD_URL = 'https://upload.twitter.com/1.1/media/upload.json'; 

//A custom function in Twitte Api 
postMedia: function (base64Media, parameters) { 
    return postRequest(MEDIA_UPLOAD_URL, {media: base64Media}, parameters); 
}, 
+0

Selam Muhammad, спасибо вам за помощь и какие параметры вы знаете об этом? – Ozan

+0

Параметры @Ozi являются необязательными Параметры. Первые два важны. URL и ImageString. –