Integrating Facebook in Android - Parse

參考Parse的教學

我們的目的是使用Parse API結合Facebook SDK

並且做出一個可以撈到FB使用者資料的簡單APP

根據教學,我們在開始coding之前,有兩個前置作業要做:
  1. 申請一個Facebook APP
  2. 把Key hash丟到Facebook APP中,可以參考FB官方流程
其實按照Parse官方的教學走就沒什麼問題,但是有些還是可以提出來一下

產生Key hash

按下你的「Windows+R」組合鍵開啟執行,輸入cmd打開命令列,準備開始製作*.keystore檔案,輸入
keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -keysize 2048 -validity 10000

程式碼中「-keystore android.keystore」這邊可以自行修改成你要的*.keystore,如banana.keystore

「-alias android」也可以自行修改你要的數值,如banana

輸入後它會叫你填一些東西,乖乖填完就好囉

填完資料會產生一個keystore,我們接著要來取出Key Hash,輸入
keytool -exportcert -alias apa -keystore apa.keystore | openssl sha1 -binary | openssl base64

就可以取得key hash囉!


產生Key hash 問題排除


  1. 如果有困難,無法取得key hash,可以先在cmd中cd到.android資料夾(像我的keystore就是放在 C:\Users\User\.android這個地方)
  2. 下載OpenSSL,把openssl.exe丟到存放*.keystore的地方,我的是放在C:\Users\User\.android


「Invalid Scope:basic_info. Use public_profile,user_friends instead...」問題

問題出在於onLoginButtonClicked()這個function裡面,basic_info是Facebook舊的permission
把它換成新的public_profile, user_friends之類的就沒問題了。

「can't import com.facebook...」問題

開發和網路有互動的APP時一定要記得開網路呀XD

「could not find *.apk」問題

我在用Eclipse的時候不停的build和clean,最後怒點右鍵點property→Android
在SDK那邊點了isLibrary,把這個勾勾取消掉就好囉


最後可以到這幾個地方看看自己的成果

  1. Facebook Developer 選擇自己的APP
  2. Home - Parse  選擇Parse Core

遇到The container 'Android Dependencies' references non existing library的問題該怎麼辦?

如果遇到了以下的問題



參照該連結提供的方法,去SDK Manager把support的library升級就可以囉!
至少對我來說是有用的XD

Step 1: 開啟Android SDK Manager



Step 2: 安裝support libray



Step 3: 安裝結束後,在專案資料夾上按右鍵,設定build path



Step 4: 重選Android Dependencies,完成!





消基會和消保會的差異在哪裡?



名稱
簡介
全名財團法人中華民國消費者文教基金會(Consumers' Foundation, Chinese Taipei,簡稱CFCT),成立於1980年11月1日,為專門改善臺灣消費環境,伸張臺灣消費者權利所設立的非營利性的第三部門。也就是說是民間組織。
全名行政院消費者保護會,於1994年7月1日成立,2012年前曾為中華民國行政院部會「行政院消費者保護委員會」。期間專責政策之研訂、審議及協調推動、《消費者保護法》之解釋及研修、重大消費事件之協調處理等消費者權益保護事項。
管理
民間
政府
對策
無法對業者做出處分,但是可以給消費者看檢驗報告(每個月都有出版)
有公權力,有相關的消保官與消保法

申訴消費過程中不公平以及意外等事件處理,過程為業者→消基會→消費者服務中心
也就是說,
  1. 一開始就直接叫你們經理出來可以先設法與業者溝通與協調
  2. 若認為沒有受到妥當的處置再去向消基會諮詢,看看是否是否屬於消費糾紛?有無消費權益上的損害?如何賠償等等
  3. 確認後接著再到地方政府所設立的消費者服務中心進行申訴



References

中華民國消費者文教基金會- 維基百科

關於消基會這個單位的一些問題 - Mobile01

如何在Blogger文章中加入程式碼區塊?

用Blogger寫blog是滿方便的,看起來好像該有的都有不該有的也都不該有
畢竟它不是個專事文書處理的服務,所以我對於沒有表格功能就比較沒那麼介意了XD
最近想要在文章中加入程式碼的區塊,不然code和plain text不能做出區隔的話
會比較難閱讀。以下是詳細的圖文步驟:


一、進入網誌管理後台


 


二、在sidebar的部分選擇「版面配置」


 


三、在區塊中新增小工具




四、選擇新增「HTML/Javascript」這個小工具





五、貼上javascript的code到內容欄位中,標題可以留白沒關係的



//code內容
<script src="//google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>


 

六、回到文章中,切換為HTML模式




七、針對要表示為程式碼的段落前後插入以下代碼


<pre class="codeblock prettyprint">

//段落內容

</pre>


八、大功告成,沒什麼~

//之後程式碼區塊的內容大概就像這樣
//雖然手動加好像還滿麻煩的XD



POST和GET有甚麼差別?


請搭配閱讀淺談 HTTP Method:表單中的 GET 與 POST 有什麼差別? - Soul & Shell Blog

POST和GET同為傳遞資料的一種方式,兩者間最明顯的差異就在於GET會在網址上顯示傳送的資料,而POST則是看不到的。使用GET的例子,可以試著玩耍Google搜尋引擎一下:
當我們搜尋「curiosity is power」的時候,可以看到網址顯示的是

https://www.google.com.tw/webhp?sourceid=chrome-instant&rlz=1C1AVNC_enTW558TW558&ion=1&espv=2&ie=UTF-8#q=curiosity+is+power

而其他部分的差異文章中拿明信片與平信來形容,我覺得很恰當也很傳神。

GET如明信片一般,寫任何東西在上面都有被看到的危險,但是造價比較便宜(請不要聯想現實生活中的酷卡,想一般書局的明信片就好了XD)封包中記錄的資料較少,所以傳輸的速度也比較快。POST就像平信──還要分裡面的信紙、外面的信封,因為要多買東西,所以不只貴也比較麻煩...封包中多紀錄了一點東西,所以傳輸速度也就比較慢了。

什麼是JSON格式?

JSON(JavaScript Object Notation)是一種輕量級的語言,以文字為基礎,且易於讓人閱讀。
JSON以key-value的格式儲存資料,並且必須被包在"{"與"}"符號之中。

以訂單內容為範例,JSON與XML不同格式有不同的表示方法:

JSON

{
  "orderID": 12345,
  "shopperName": "John Smith",
  "shopperEmail": "johnsmith@example.com",
  "contents": [
    {
      "productID": 34,
      "productName": "SuperWidget",
      "quantity": 1
    },
    {
      "productID": 56,
      "productName": "WonderWidget",
      "quantity": 3
    }
  ],
  "orderCompleted": true
}

XML 

<object>
  <property>
    <key>orderID</key>
    <number>12345</number>
  </property>
  <property>
    <key>shopperName</key>
    <string>John Smith</string>
  </property>
  <property>
    <key>shopperEmail</key>
    <string>johnsmith@example.com</string>
  </property>
  <property>
    <key>contents</key>
    <array>
      <object>
        <property>
          <key>productID</key>
          <number>34</number>
        </property>
        <property>
          <key>productName</key>
          <string>SuperWidget</string>
        </property>
        <property>
          <key>quantity</key>
          <number>1</number>
        </property>       
      </object>
      <object>
        <property>
          <key>productID</key>
          <number>56</number>
        </property>
        <property>
          <key>productName</key>
          <string>WonderWidget</string>
        </property>
        <property>
          <key>quantity</key>
          <number>3</number>
        </property>
      </object>
    </array>
  </property>
  <property>
    <key>orderCompleted</key>
    <boolean>true</boolean>
  </property> 
</object>

JSON和XML的不同 XML是標記語言,需要費更大的功夫才能解讀,XML在容易資料儲存方面更具優勢,而JSON輕巧的特性,使其較適合用於資料傳輸。

reference

瞭解JSON格式 @ 清新下午茶 :: 痞客邦 PIXNET ::
你不可不知的 JSON 基本介紹 | 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY