2015-01-11 5 views
2

PhoneGap Build 서비스를 사용하여 Android 및 iOS 용 기본 앱으로 작동해야하는 HTML5/CSS/Javascript PhoneGap 앱을 개발 중입니다. 응용 프로그램은 페이 스북 로그인을 사용합니다.PhoneGap/Cordova 페이스 북 로그인이 이미 연결되어있을 때 작동하지 않습니다.

로그인은 JAVASCRIPT API를 통해 수행됩니다. 그래서 간단한 HTML 페이지가 있습니다 :

<!DOCTYPE html> 

<head> 
<meta charset="utf-8" /> 
<meta name="format-detection" content="telephone=no" /> 
<meta name="msapplication-tap-highlight" content="no" /> 
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> 
<link href="style.css" rel="stylesheet" type="text/css" /> 
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 
<script src="cordova.js" type="text/javascript"></script> 
</head> 

<body> 

<div id="fb-root"></div> 

<script type="text/javascript"> 
$(document).on('click', '#login', function(){ 
    facebookConnectPlugin.login(["email,user_birthday,publish_actions"], function(response) { 
     if(response.authResponse) { 
     alert(response.authResponse.userID); 
     } 
    }); 
}); 
</script> 

<img id="login" src="images/login.png" alt="" /> 

</body> 

</html> 

위의 코드는 사용자가 이전에 앱을 인증하지 않은 경우 잘 작동합니다. 따라서 사용자가 로그인 버튼을 클릭하고 사용자가 로그인을 수락하면 사용자 ID가 성공적으로 반환되고 사용이 닫히고 앱이 다시 열릴 때 세션이 잘 고정됩니다.

사용자가 앱을 제거하고 다시 설치하면 문제가 발생합니다. 사용자가 로그인 버튼을 클릭하면 로그인 대화 상자가 빠르게 열리고 사용자가 앱에서 이미 인증 된대로 다시 닫힙니다. 사용자 ID와 액세스 토큰은 Facebook의 일반 자바 스크립트 API와 같은 응답으로 반환되어야합니다. 대신 실패가 다음 오류로 반환됩니다 상기 제 2 기능 : there is no session initiated...

나는이 (가) config.xml 파일에 다음을 추가 한 :하지만 사용자가 로그 아웃을 시도

session was closed and was not closed normally 

나는 다음과 같은 오류가 발생했습니다 파일 :

<gap:plugin name="com.phonegap.plugins.facebookconnect" version="0.9.0"> 
    <param name="APP_ID" value="xxxxxx" /> 
    <param name="APP_NAME" value="App Name" /> 
</gap:plugin> 

현재 Facebook 앱에는 웹 사이트 플랫폼 만 있습니다. 인증을 위해 자바 스크립트 API를 사용하는 동안 Android를 플랫폼으로 추가해야합니까?

어떤 해결책이 있습니까?

답변

3

마지막으로 해결했습니다! 이 문제를 만난 사람을위한 솔루션 :

1) 앱용 키 저장소를 생성합니다.

http://base.techority.com/2013/01/01/how-to-generate-a-key-for-your-android-app-on-a-mac/

2) 키 스토어의 해시를 생성 : 여기를 할 수있는 튜토리얼입니다.

https://developers.facebook.com/docs/android/getting-started#release-key-hash

3) 페이스 북 응용 프로그램의 플랫폼으로 안드로이드 추가 : 여기에 그것을 할 수있는 문서입니다. 마지막 단계에서 얻은 해시를 Android 구성의 '키 해시'섹션에 입력합니다. 또한 'Google Play 스토어 패키지'섹션에 앱 패키지 이름을 입력합니다. 아직 앱을 플레이 스토어에 제출하지 않은 경우에도이 작업을 수행해야합니다. 또한 "Sign Sign On"옵션을 켜기로 전환하십시오.

4) Phonegap Build에 앱을 업로드 한 후 "Builds"탭을 클릭하십시오.

5) 안드로이드 플랫폼의 키 드롭 다운 메뉴를 클릭하십시오. "새 키 추가 ..."를 클릭하십시오.

6) .keystore 파일을 업로드하고 키 저장소를 만들 때 선택한 "별칭"을 입력하십시오.

7) "다시 빌드"버튼을 클릭하여 키 스토어를 Android 앱에 할당하십시오. 열쇠를 잠그는 간단한 지시로 열쇠가 잠겨 있다는 오류가 발생합니다.

8) 키 저장소를 잠금 해제 한 후 다시 '다시 작성'을 클릭하면 새로운 최종 Android apk가 성공적으로 다시 작성됩니다.

지금 당신은 페이스 북의 로그인으로 다시 문제를 실행하면 안됩니다 :)

1

문제는 수동 내가 낭비

<resources> 
    <string name="fb_app_id">xxxxxxxxxx</string> 
    <string name="fb_app_name">fb namespace here</string> 
</resources> 

facebookconnect.xml이를 추가 할 필요가 phonegap-facebook-plugin\platforms\android\res\values\facebookconnect.xml

함께 2 이 날과 모든 날에 대한 날은 keyhash를 체크 할 것을 제안했습니다.

이것은 문서입니다 : - https://github.com/Wizcorp/phonegap-facebook-plugin/blob/master/platforms/android/README.md

관련 문제