2013-05-10 13 views
64

Belgelenmemiş aramalar kullanmadan Facebook kullanıcılarından bir kullanıcı oluşturmak istiyorum. Ben iki bilinen nedenlerden dolayı Ayrıştırma JavaScript Kütüphanesi geçerli uygulama dayanan mümkün olduğuna inanmıyorum: hemen başarısız böyleceParse Javascript API'sini Appcelerator ile nasıl entegre ediyor ve belgelenmemiş aramaları kullanmıyorsunuz?

1. kütüphanesi mevcut uygulama Appcelerator HTTP istemcisi desteklemiyor. Appcelerator HTTP client'u kullanmak için varolan Parse Javascript kitaplığının ajax yöntemini genişleterek bu sorunu ele aldım.

http://www.clearlyinnovative.com/blog/post/34758524107/parse-appcelerator-titanium-the-easy-way

Orada benim yarattığım slayt grubuna ve blog yayında aynı hakkında yaklaşık 2K görüşleri olmuştur, yüzden insanlar bu çalışmak istiyorum bana oldukça açıktır etmiştir.

2. Kitaplığın şu anki uygulaması, Facebook Javascript kitaplığı ile entegre olduğunuzu varsayar ve bu kütüphane de Appcelerator ile çalışmaz. Aslında Appcelerator, Facebook'u doğrudan çerçeveye entegre etti, böylece javascript kütüphanesine ihtiyaç kalmadı. Bir kullanıcı hesabını Facebook'a bağlamak için gereken tüm bilgiler, Appcelerator geliştiricilerinin zaten tanıdık olduğu API çağrıları kullanılarak kolayca edinilebilir.

Özgün soru Parse Destek forumundan kaldırıldı, böylece daha geniş bir topluluktan bir çözüm arıyorum.

Merhaba Aaron, O geçici bir çözüm olarak ayrıştırma kütüphanesinde belgesiz API'leri kullanarak tanıtmak için diğer geliştiricilere yararlı değildir, bu yüzden buna listelenmemesini kararını

. Özel durumunuza Titanium ile yardımcı olabileceğini anlıyorum ve özel API'lerini kullanmanın etkilerini çok iyi biliyorsunuz, ancak diğer kullanıcılar bu uyarıyı gözden kaçırıyor olabilir. Umarım anlarsınız.

// setting auth data retrieved from Ti.Facebook login 
authData = { 
    "facebook" : { 
     "id" : Ti.Facebook.uid, 
     "access_token" : Ti.Facebook.accessToken, 
     "expiration_date" : expDate, // "format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 
    } 
}; 

// Either way I resolved the problem, calling _handleSaveResult(true) on the returned user object, 
// I just dont think it should have been as difficult as it was 
// attempt to log the user in using the FB information 
var user = new Parse.User(); 
user.save({ 
    "authData" : authData 
}).then(function(_user) { 
    // force the user to become current 
    _user._handleSaveResult(true); //<-- this is the evil method I called 
    if (!_user.existed()) { 

     // add additional user information 
     var userInfo = { 
      "acct_email" : "[email protected]", 
      "acct_fname" : "Bryce", 
      "acct_lname" : "Saunders" 
     }; 
     return _user.save(userInfo); 
    } 
}).then(function(_user) { 

    alert('Hooray! Let them use the app now.'); 

}, function(error) { 
    alert(' ERROR: ' + JSON.stringify(error, null, 2)); 
}); 

Soru Appcelerator üzerinde Forum

http://developer.appcelerator.com/question/152146/facebook-appcelerator-and-parse-integration-need-help

:

Héctor Ramos Çözüm Mimarı, Bu forumda görünür bırakılamayacak kadar tehlikeli olduğunu kodudur https://parse.com/help

Ayrıştırma

Parse Forum'da Soru

https://parse.com/questions/how-do-you-integrate-the-parse-javascript-api-with-appcelerator-and-not-use-undocumented-calls

+0

Sorununuz nedir? Tüm meseleleri yanıtladınız veya çalıştınız. –

+0

desteklenmektedir ve herhangi bir zamanda parse.js kitaplığına yapılan bir güncelleştirme ile değişebilir –

+0

Yönetici personelini henüz e-posta ile göndermediniz mi? Görünüşe göre, hangi API'ların resmen açığa çıktıklarını değiştirecek ve bunun işe yaraması için bir yol açacak gibi görünene kadar, bir "cevap" olmadan sıkışmış olursunuz. –

cevap

3
Belki

daha yeni bir SDK bu kısmı, ama sadece arayamazsınız:

Parse.FacebookUtils.logIn({ 
    "facebook": { 
    "id": "user's Facebook id number as a string", 
    "access_token": "an authorized Facebook access token for the user", 
    "expiration_date": "token expiration date of the format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 
    }, 
    { 
     success : function(_user) {}, 
     error : function(_user, error) {} 
    } 
}; 

O JavaScript kılavuzda belgelenmiş değil, ama bunun unminified sürümünde belgelenmiştir kod vize vie:

@param {String, Object} permissions The permissions required for Facebook 
log in. This is a comma-separated string of permissions. 
Alternatively, supply a Facebook authData object as described in our 
REST API docs if you want to handle getting facebook auth tokens 
yourself. 

ben Github yayınlamak için gidiyorum en son SDK'yı desteklemek için orijinal kod bazı güncellemeler yaptı.

Bu çabaya öncülük ettiğiniz için çok teşekkürler. Asıl gönderi saatlerce kurtardı.

İlgili konular