2014-01-08 1 views
0

이 튜토리얼을 계속 진행할 예정입니다. https://developers.facebook.com/docs/android/getting-started/facebook sdk : 내 데이터를 복구 할 수 없습니다.

내 앱을 실행할 때 문제가 발생했습니다. 일부 출시 후,에 AlertDialog는, 내 응용 프로그램 내 공개 프로필에 접근 할 필요가 있음을 나 한테 물어 나타나지 않고 onCompleted 방법은

public class MainActivity extends Activity { 
String TAG = "FACEBOOK"; 
TextView tv; 

@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) { 
      Log.i(TAG, 
        "openactivesession ,call with state " 
          + state.toString()); 

      if (session.isOpened()) { 
       Log.i(TAG, "Session is opened"); 
       // make request to the /me GRAPH API that retrieve info 
       // about ME 
       Request.newMeRequest(session, new Request.GraphUserCallback() { 
        // callback after Graph API response with user 
        // object 
        @Override 
        public void onCompleted(GraphUser user, Response response) { 
         Log.i(TAG, "inside onCompleted"); 
         if (user != null) { 
          Log.i(TAG, "user not null"); 
          tv = (TextView) findViewById(R.id.tv); 
          tv.setText("Hello "+ user.getFirstName() + " "+ user.getName()); 
         } 
        } 
       }); 

      } 
     } 
    }); 
} 

/* 
* onAcitvityResult is called when we start an activity to get a result 
* (with startActivityForResult()). After started activity ends, return his 
* result as Intent (third args) 
*/ 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Session.getActiveSession().onActivityResult(this, requestCode, 
      resultCode, data); 
} 
} 

매니페스트 해고는 결코

<?xml version="1.0" encoding="utf-8"?> 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="20" /> 

<uses-permission android:name="android.permission.INTERNET" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.firstandroidapp.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

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

    <activity android:name="com.facebook.LoginActivity" /> 
</application> 

무엇이 문제인지 알 수 없습니다. 새 해시도 생성하려고했지만 여전히 작동하지 않습니다.

답변

1

.executeAsync();후 Reqest.newMeRequest

Request.newMeRequest(session, new GraphUserCallback() { 

        @Override 
        public void onCompleted(GraphUser user, Response response) { 
        // Your code here 

        } 
       }).executeAsync(); 
+0

좋아, 그것을 작동합니다. 그들은 튜토리얼을 업데이 트해야합니다! – giozh

+0

링크 된 문서는 Request.executeMeRequestAsync를 사용합니다. 요청을 생성하고 executeAsync를 호출합니다. 반면에 Request.newMeRequest 만 있습니다. –

+0

Request.executeMeRequestAsync는 더 이상 사용되지 않습니다. Facebook SDK 3.0.1의 방법입니다. –

관련 문제