반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형
Posted on

. Written by



수요일 입니다. FAQ 시간이죠. 아래 5가지 자주 나오는 질문을 모아봤습니다.


1. What is the proper way to use Facebook.showDialog?


showDialog API는 어떤 것이 sent/posted 되는지에 대해 유저가 메세지를 넣을 수 있도록 dialog screen을 불러 옵니다. 이 API는 action 파라미터를 필요로 하죠. 이 파라미터는 feed나 apprequests 중 하나가 될 수 있습니다. 만약 apprequests가 사용된다면 message 파라미터가 있어야 됩니다. 아니면 fail 되죠. 아래 예제가 있습니다.


facebook.showDialog( "apprequests", {
    message = "Example message."
} )


2. The Single Sign On (SSO) for iOS is not working. What can cause this?


build.settings 파일 안에 있는 UIApplicationExitsOnSuspend key가 false 로 세팅돼 있어야 합니다. false 가 디폴트 입니다. 그런데 어떤 유저들은 이 key를 include 해서 true로 세팅하기도 합니다. 그렇게 되면 SSO fail이 일어나는 거죠.

그리고 build.settings 파일 안에 Facebook App ID 도 있어야 합니다. 어떻게 하는지에 대한 것은 Jonathan’s blog post 를 봐 주세요.


3. My users are having to re-logon every few hours into Facebook from my app. Is there anything I can do to extend the time?


예 페이스북 앱 set-up 페이지에서 “Remove offline_access permission”를 enable 하도록 만들 수 있습니다. https://developers.facebook.com/apps/ 로 가셔서 페이지 우상단에 있는 “Edit App” 버튼을 클릭하세요. 이제 Setting 메뉴 아래에 있는 Advanced 를 클릭하세요. 아래 화면을 보실 수 있을 겁니다. “Remove offline_access permission” 이 enabled 돼 있는지 확인하세요. 그러면 logon token을 60일동안 연장해 줄 겁니다.





4. How can I tell when the Facebook token will expire?


Corona Facebook API listener는 event.phase == “login” 일 때 event.expiration 안의 token expiration time을 return 합니다. 아래 코드대로 하면 expire 될 때까지 며칠이 남았는지 표시해 줄 겁니다.


print( ">>> Token expires in " ..
    os.difftime( event.expiration, os.time() )/86400 .." days" )


5. I’m getting a log-on error when I enable Facebook’s Single Sign On (SSO) for Android. How do I generate the “Android Key Hash?”


만약 안드로이드 앱에서 Single sign on (SSO)이 enable 돼 있다면 이것은 fail 될 겁니다. 왜냐하면 맞는 hash key를 supply 하지 않았기 때문입니다. 이러면 아마 logon 하려고 할 때 ADB logcat에 다음과 같은 메세지가 뜰 겁니다. 

“invalid_key:Android key mismatch. Your key “PGv8R2vDQ/w6hexLxdefWKxcYLS” does not match the allowed keys specified in your application settings. Check your application settings at http://www.facebook. … “


당신의 key가 뭐가 되야 되는지는 ADB를 이용해서 알아낼 수 있습니다. 더 간단하게 하려면 그냥 logcat terminal window에 있는 key string을 복사해서 여러분의 안드로이드 key hash를 필요로하는 페이스북 앱 페이지에 붙여 넣으세요.  그냥 123을 입력하고 앱을 돌리면 logcat이 맞는 hash key를 output 해 줄겁니다.

https://developers.facebook.com/apps/ 로 가셔서 페이지 우상단에 있는 “Edit App” button을 클릭하세요.  그러면 Android SSO 세팅과 관련 된 Basic 페이지로 가게 될 겁니다.






SSO를 지원하지 않는 디바이스에 있는 옛날 페이스북 앱이 있다면 log-in call은 페이스북 앱을 call 하는 대신에 로컬 웹 팝업이 뜰 겁니다. 이 경우에는 hash key가 사용되지 않습니다.


만약 유저가 SSO를 지원하는 것으로 그들의 페이스북 앱을 업그레이드 했다면 그 유저는 여러분 앱에서 로그아웃을 해야 합니다. 안 그러면 token 은 incorrect 되고 request/dialog API 은 fail 되겠죠. 왜냐하면 invalid token 때문입니다. (코로나는 그 token을 바로 직전의 성공한 로그인에서 저장하고 이것을 모든 API call 에 사용합니다.)


여기까지가 오늘의 내용입니다. 즐거우셨길 바라고 뭔가 모르는 부분을 알게 되는 기회가 됐기를 바랍니다.



반응형