[問題] 使用FB登入後如何顯示資料

看板AndroidDev作者 (ChingYue)時間7年前 (2017/07/31 18:34), 7年前編輯推噓3(3029)
留言32則, 5人參與, 最新討論串1/1
各位前輩好! 小弟最近在練習FB SDK中的登入功能 先附上程式碼:http://codepad.org/202R9AMH onCreate程式碼(圖):http://i.imgur.com/Ukn9pjf.jpg
APP執行畫面 1:登入前:http://i.imgur.com/Lxc6x1n.jpg
2:登入確認畫面:http://i.imgur.com/26vmue9.jpg
3:登入後:http://i.imgur.com/8mI0jcr.jpg
4:登出畫面:http://i.imgur.com/98zomPS.jpg
小弟有些問題需要麻煩各位前輩幫忙解惑 1:只有在使用新模擬器,第一次登入時需要輸入帳號密碼 接下來就算登出,重新登入,都會直接跳到登入確認畫面 請問要如何才能在登出後,清除紀錄,避免每次都登入重複帳號 2:小弟看到文章說可以用 Log.d("FB",object.optString("name")); 讀出想要的資料 然後送出request 可是我的執行結果卻沒有顯示出我想讀取的資料 請問該如何直接在APP上面顯示我想讀取的資料(EX:姓名,FB ID等) 懇請各位前輩不吝賜教! 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.59.114 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1501497289.A.8CC.html

07/31 18:43, , 1F
登出是用這個?LoginManager.getInstance().logOut();
07/31 18:43, 1F
謝謝您! 我會去嘗試看看! 您好 小弟修改後,登出按鈕會變成登入 但是案登入後一樣會直接登入第一次的帳號 沒辦法重新帳號密碼 我是將程式碼放到這裡 protected void onResume() { super.onResume(); LoginManager.getInstance().logOut(); }; 不知道是不是我這樣修改有錯?

07/31 21:05, , 2F
你只跟他要email權限,我不確定這樣是否可以取得名字
07/31 21:05, 2F
謝謝您! 我剛剛有將email改成public_profile 可是依然沒有顯示出名稱等 ※ 編輯: chingyue (122.116.59.114), 08/01/2017 09:53:49

08/01 13:15, , 3F
"email"改成{"email","name","id"}試試看??
08/01 13:15, 3F
謝謝您! 我剛剛將完後會出現錯誤,錯誤圖:http://i.imgur.com/uAeGwMH.jpg
※ 編輯: chingyue (122.116.59.114), 08/01/2017 15:48:11

08/01 16:58, , 4F
應該是name不合法
08/01 16:58, 4F

08/01 16:59, , 5F
08/01 16:59, 5F

08/01 17:00, , 6F
08/01 17:00, 6F
謝謝您! name包在public_profile裡面 我有將email改成public_profile過 可是依然是沒有資料 ※ 編輯: chingyue (122.116.59.114), 08/01/2017 17:05:52

08/01 17:45, , 7F
謝謝您! 我將程式碼改為String id = object.optString("id");後 依然沒有辦法顯示出來 所以我嘗試將結果顯示到TextView上面 結果app都沒辦法開啟了.... 錯誤圖:http://i.imgur.com/jNXuZps.jpg
※ 編輯: chingyue (122.116.59.114), 08/01/2017 19:29:40

08/01 20:57, , 8F
看log
08/01 20:57, 8F
抱歉,小弟第一次接觸Android 一切都是上網邊看邊試 我剛剛有打開Android Monitor看error那些 可是他一次跳出的訊息量太大了 我無法理解 我會再慢慢一行一行的新增/修改看看 謝謝您

08/01 21:36, , 9F
userid:loginResult.getAccessToken().getUserId()
08/01 21:36, 9F

08/01 21:37, , 10F
name:Profile.getCurrentProfile().getName()
08/01 21:37, 10F

08/01 21:38, , 11F
id也可以:Profile.getCurrentProfile().getId()
08/01 21:38, 11F

08/01 21:38, , 12F
url:Profile.getCurrentProfile().getLinkUri()
08/01 21:38, 12F
謝謝您 現在是我想要顯示出來的時候 APP都會直接崩潰 所以沒辦法測試到底有沒有成功 我再慢慢嘗試修改看看 ※ 編輯: chingyue (122.116.59.114), 08/02/2017 14:53:58

08/02 16:45, , 13F
crash可能是有null,檢查一下profile有沒有get到東西
08/02 16:45, 13F

08/03 00:34, , 14F
把mtextview. settext那刪掉應該就不會閃退了?
08/03 00:34, 14F

08/03 00:45, , 15F
你的LoginManager.getInstance().logOut();應該放在onCrea
08/03 00:45, 15F

08/03 00:45, , 16F
te裡面,讓他每次啟動app時先登出
08/03 00:45, 16F

08/03 09:56, , 17F

08/03 09:56, , 18F
謝謝您! 我的那一串好像原本就放在<application了 我明天會試看看登出 我會加mtextview. settext 是因為想要顯示出收到的資料 如果刪掉 不就沒有辦法顯示出收到的資料了嗎?? ※ 編輯: chingyue (122.116.59.114), 08/03/2017 19:26:35

08/03 20:43, , 19F
改像我上面寫的那樣應該就可以了
08/03 20:43, 19F

08/03 20:44, , 20F
因為你在oncreate外去findview所以會產生錯誤
08/03 20:44, 20F

08/03 21:00, , 21F
另外如果你登入的方式是透過app的話(按下登入時是啟動app)
08/03 21:00, 21F

08/03 21:00, , 22F
他的logout應該是不會有效果出現,除非你把app中的帳號登
08/03 21:00, 22F

08/03 21:00, , 23F
08/03 21:00, 23F

08/03 21:02, , 24F

08/03 21:03, , 25F
如果你登入時他像上面的圖彈這個視窗,那代表不是透過fb
08/03 21:03, 25F

08/03 21:03, , 26F
app做登入,那你沒有加logout那行也沒差,每次都要登入
08/03 21:03, 26F

08/03 21:11, , 27F

08/03 21:11, , 28F
如果你的登入是成功的,在右上那打"FB",應該會看到如上圖
08/03 21:11, 28F

08/03 21:12, , 29F
紅框處的帳號資訊,然後就可以放在你的TextView裡
08/03 21:12, 29F

08/03 21:12, , 30F

08/03 21:13, , 31F

08/03 21:13, , 32F
剛上面兩張圖貼錯了,補圖Y
08/03 21:13, 32F
非常謝謝您! 小弟受教了! ※ 編輯: chingyue (122.116.59.114), 08/04/2017 17:26:32
文章代碼(AID): #1PVmV9ZC (AndroidDev)
文章代碼(AID): #1PVmV9ZC (AndroidDev)