SORU
28 EYLÜL 2012, Cuma


Görünüm OAuth token ile özel video Vimeo

Herkes Vimeo API bir çubuk kullanarak yardım edebilir mi? Amacım kullanıcı parolası (bu işlem arka planda yapılmalıdır) koymak için zorlamak zorunda kalmadan özel bir video yükledim) erişmek için.

Araştırma / anlamak anladığım kadarıyla gerekli

  1. Uygulama oAuth yetkilendirme Protokolü kullanarak, istek ve aşağıdaki bağlantı yoluyla:

    https://vimeo.com/oauth/authorize?oauth_token=XXXX

    Bu işlem başarıyla gerçekleştirilen ve yanıt verileri geri arama URL gönderilir. gibi bir şey

    http://127.0.0.1:8001/XPTO.html?oauth_token=AUTH_TOKEN_EXAMPLE&oauth_verifier=VERIFIIER__EXAMPLE"

  2. According to Brad Dougherty (Vimeo API Personel) mümkün böyle bir şey

    Eğer kendin gibi OAuth sürecinde gidersen, token Kaydet ve arama yapmak için kullanabilirsiniz.

Bu kodu kullanıyorum:

service = new ServiceBuilder().provider(VimeoApi.class)
                .apiKey("API_KEY_EXAMPLE")
                .apiSecret("API_SECRET_EXAMPLE")
                .build();

OAuthRequest request = new OAuthRequest(Verb.GET,
        "http://vimeo.com/api/rest/v2?video_id=50305416");

request.addQuerystringParameter("format", "json");
request.addQuerystringParameter("method", "vimeo.videos.getInfo");

String oauth_verifier=VERIFIER__EXAMPLE;
Verifier verifier = new Verifier(oauth_verifier);

//I've tried differents combination to create this token
//I believe that my problem is HERE
//One unsuccessfully try: Token requestToken = service.getRequestToken();
Token requestToken = new Token(
        AUTH_TOKEN_EXAMPLE,
        API_SECRET_EXAMPLE);

Token token = service.getAccessToken(requestToken, verifier);

service.signRequest(token, request); 
Response response = request.send();

Aşağıdaki hata ettim:

Yanıt vücut yanlıştır. Bu belirteç ve gizli özü: '401 - Yetkisiz Geçersiz imza - oauth_signature geçti geçerli değil.'

Bana kaçan ne? Bu bunu yapmak için doğru yol değil mi?

CEVAP
27 Kasım 2013, ÇARŞAMBA


Bu şekilde yaptım: "http-on-modify-request" olay nsIHttpChannel dur, geçerli pencere için tarayıcı nesne almak, browser.loadURI.

var utils = require("sdk/window/utils");

function needsRedirect(url) {
    // to be implemented
    return true;
}

function generateNewUrl(url) {
    // to be implemented
    return "http://www.example.com/";
}

Cc["@mozilla.org/observer-service;1"]
    .getService(Ci.nsIObserverService)
    .addObserver({
        observe: function(subject, topic, data) {
            var channel = subject.QueryInterface(Ci.nsIHttpChannel);
            var url = channel.originalURI.spec;
            if (needsRedirect(url)) {
                //stop
                channel.cancel(Cr.NS_BINDING_ABORTED);

                //redirect
                var gBrowser = utils.getMostRecentBrowserWindow().gBrowser;
                var domWin = channel.notificationCallbacks.getInterface(Ci.nsIDOMWindow);
                var browser = gBrowser.getBrowserForDocument(domWin.top.document);
                browser.loadURI(generateNewUrl(url));

            }
        }
    }, "http-on-modify-request", false);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BeginnersTech

    BeginnersTec

    8 NİSAN 2011
  • Joshua Bane

    Joshua Bane

    24 Temmuz 2007
  • Julia Graf

    Julia Graf

    6 Mayıs 2006