2014-07-08 27 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" /> 
相关问题