Rivu Chakraborty
Rivu Chakraborty

Reputation: 1372

Ionic Framework Twitter integration

I am presently working on a Project in which I have to use Ionic Framework for twitter integration.

I was using a sample program from ionic forum: http://forum.ionicframework.com/t/twitter-integration-with-jsoauth/3936

available at bitbucket: https://bitbucket.org/aaronksaunders/ionic.twitter.sample

I have tested it in both way i.e. with ionic serve and on the emulator, but with the same result: whenever I click on the login a new browser window with adrress: https://api.twitter.com/oauth/authorize? appears that contains the below error message.

Whoa there!
There is no request token for this page. That's the special key we need
from applications asking to use your Twitter account. Please go back to
the site or application that sent you here and try again; it was probably 
just a mistake.

I have placed my twitter API Key and API Secret at proper places.

Upvotes: 4

Views: 3700

Answers (3)

colefner
colefner

Reputation: 1841

Try using Cordova oAuth plugin combined with the in-app-browser plugin, as suggested by @darryn.ten. Here is an example of how to trigger a Twitter login with the oAuth plugin:

Controller

 angular.module('myApp')
       .controller('MyAppCtrl', ['$scope', '$cordovaOauth', function($scope, $cordovaOauth) {

       $scope.twitterLogin = function() {
            $cordovaOauth.twitter(<consumer key>, <secret key>).then(function(r) {
                //retrieve oAuth token from result
            }, function(error) {
                //show error
            });
        }
    }])

View

<a class="button button-calm" href="#" ng-click="twitterLogin()">Twitter Login</a>

See docs here.

Upvotes: 0

Puma
Puma

Reputation: 877

I actually like using hello.js.

It's a great library that handles your social media tokens for you.

Example Initialization:

hello.init({
    facebook : '12345678912345'
}, {
    // Define the OAuth2 return URL
    redirect_uri : 'http://adodson.com/hello.js/redirect.html'
});

Login:

hello( "facebook" ).login().then( function(){
    alert("You are signed in to Facebook");
}, function( e ){
    alert("Signin error: " + e.error.message );
});

After you've logged in, you can make any call to your social media account of your choice.

Upvotes: 4

darryn.ten
darryn.ten

Reputation: 6973

You should be using ngCordova where possible.

The Oauth plugin documentation explains that you need to use jsSHA to authenticate with Twitter.

To use Twitter in your project you must have the open source library, jsSHA, included in your project. This is because Twitter requires request signing using HMAC-SHA1, not natively found in JavaScript.

Further information is available in the ngCordova Oauth plugin documentation.

Upvotes: 4

Related Questions