shareTwitteriOS method

Future<Response> shareTwitteriOS(
  1. String tk,
  2. String tsk,
  3. String status,
  4. String ck,
  5. String csk,
)

Implementation

Future<http.Response> shareTwitteriOS(String tk, String tsk, String status, String ck, String csk) async {
  String base = '/1.1/statuses/update.json';
  var params = [
    ["status", status]
  ];

  String oauthConsumer = 'oauth_consumer_key="${Uri.encodeComponent(ck)}"';
  String oauthToken = 'oauth_token="${Uri.encodeComponent(tk)}"';
  String oauthNonce = 'oauth_nonce="${Uri.encodeComponent(randomAlphaNumeric(42))}"';
  String oauthVersion = 'oauth_version="${Uri.encodeComponent("1.0")}"';
  String oauthTime = 'oauth_timestamp="${(DateTime.now().millisecondsSinceEpoch / 1000).toString()}"';
  String oauthMethod = 'oauth_signature_method="${Uri.encodeComponent("HMAC-SHA1")}"';
  var oauthList = [oauthConsumer.replaceAll('"', ""), oauthNonce.replaceAll('"', ""), oauthMethod.replaceAll('"', ""), oauthTime.replaceAll('"', ""), oauthToken.replaceAll('"', ""), oauthVersion.replaceAll('"', "")];
  var paramMap = Map<String, String>();

  for (List<String> param in params) {
    oauthList.add('${Uri.encodeComponent(param[0])}=${Uri.encodeComponent(param[1])}');
    paramMap[param[0]] = param[1];
  }

  oauthList.sort();
  String oauthSig = 'oauth_signature="${Uri.encodeComponent(generateSignature("POST", "https://api.twitter.com$base", oauthList, tsk, csk))}"';
  print(oauthSig);
  return await http.post(new Uri.https("api.twitter.com", base, paramMap), headers: {"Authorization": 'Oauth $oauthConsumer, $oauthNonce, $oauthSig, $oauthMethod, $oauthTime, $oauthToken, $oauthVersion', "Content-Type": "application/json"}).timeout(Duration(seconds: 15));
}