2014-07-08 32 views
1

我試圖在https://developers.facebook.com/docs/android/getting-started/中提到應用程序,但我面臨一個問題。我可以運行應用程序並使用我的FB帳戶登錄,但我無法在Facebook上獲得我的名字。 這是錯誤,當我試圖讓我的名字:Android Facebook SDK「無會話請求需要令牌,但缺少應用程序ID或客戶端令牌」

07-09 00:36:12.275: D/Request(28372): Warning: Sessionless Request needs token but missing either application ID or client token. 

我認爲這個問題是關於認證或訪問FB數據庫相關的一些權限。 任何意見,將不勝感激..

這是我的工作代碼:

package com.example.firstface; 

import java.security.MessageDigest; 
import java.security.NoSuchAlgorithmException; 

import android.content.Intent; 
import android.content.pm.PackageInfo; 
import android.content.pm.PackageManager; 
import android.content.pm.PackageManager.NameNotFoundException; 
import android.content.pm.Signature; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.util.Base64; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.TextView; 

import com.facebook.Request; 
import com.facebook.Response; 
import com.facebook.Session; 
import com.facebook.SessionState; 
import com.facebook.model.GraphUser; 

public class MainActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // start Facebook Login   
     Session.openActiveSession(this, true, new Session.StatusCallback() { 

      // callback when session changes state 
      @Override 
      public void call(Session session, SessionState state, Exception exception) { 
      if (session.isOpened()) { 
       Log.d("Info : ", session.getApplicationId()); 
       // make request to the /me API 
       Request.newMeRequest(session, new Request.GraphUserCallback() { 

       // callback after Graph API response with user object 
       @Override 
       public void onCompleted(GraphUser user, Response response) { 
        if (user != null) { 
        TextView welcome = (TextView) findViewById(R.id.welcome); 
        welcome.setText("hello " + user.getName() + "!"); 
        } 
       } 
       }).executeAsync(); 
      } 
      } 
     }); 
    } 

    @Override 
     public void onActivityResult(int requestCode, int resultCode, Intent data) { 
      super.onActivityResult(requestCode, resultCode, data); 
      Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
     } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 

回答

3

從片段刪除onActivityResult然後活動頁面上添加方法

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
} 

這對我的作品!!!!!

+1

這爲我工作。我正要在牆上打我的頭。感謝分享 :) –

0

這爲我工作:

 <string name="app_id">999999999999999</string> 
    <meta-data 
     android:name="com.facebook.sdk.ApplicationId" 
     android:value="@string/app_id" /> 
相關問題