Parse SDK Android – Facebook Graph API v2.0

Я использую Parse SDK в своем приложении ( https://github.com/ParsePlatform/Parse-SDK-Android ).

Мое приложение также использует Facebook Utils для обеспечения входа в систему с помощью Facebook ( https://github.com/ParsePlatform/ParseFacebookUtils-Android )

Недавно я получил следующее сообщение от разработчиков Facebook в отношении одного из моих приложений: «xxx делал недавние вызовы API для Graph API версии 2.0, которые достигнут конца двухлетнего окна устаревания в понедельник, 8 августа, 2016. Пожалуйста, перенесите все вызовы на v2.1 или выше, чтобы избежать потенциальных нарушений. "

Как я могу исправить эту проблему?

Это мой файл build.gradle в разделе dependecies:

dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.parse:parse-android:1.13.1' compile 'com.parse:parsefacebookutils-v4-android:1.10.4@aar' compile 'com.parse.bolts:bolts-tasks:1.4.0' compile 'com.parse.bolts:bolts-applinks:1.4.0' compile 'com.jeremyfeinstein.slidingmenu:library:1.3@aar' compile 'com.soundcloud.android:android-crop:1.0.0@aar' compile 'com.facebook.android:facebook-android-sdk:4.+' compile files('libs/universal-image-loader-1.9.3.jar') } 

И это единственный пункт в коде, где я использую SDK для Facebook:

 ParseFacebookUtils.logInWithReadPermissionsInBackground(Login.this, permissions, new LogInCallback() { @Override public void done(final ParseUser user, ParseException err) { fbdialog = new ProgressDialog(Login.this); fbdialog.setTitle("Contacting Facebook"); fbdialog.setMessage("Please wait a moment. We are contacting Facebook to perform the registration"); fbdialog.show(); if (user == null) { Log.d("MyApp", "Uh oh. The user cancelled the Facebook login."); fbdialog.cancel(); } else if (user.isNew() || !user.isNew()) { Log.d("MyApp", "User signed up and logged in through Facebook!" + AccessToken.getCurrentAccessToken()); GraphRequest request = GraphRequest.newMeRequest( AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted( JSONObject object, GraphResponse response) { if(response!=null) { try { String nome = object.getString("name"); String email = object.getString("email"); String gender = object.getString("gender"); final String facebookid = object.getString("id"); ParseUser utente = ParseUser.getCurrentUser(); utente.put("namelastname", nome); utente.put("email", email); utente.put("gender", gender); utente.saveInBackground(new SaveCallback() { @Override public void done(ParseException e) { if (e == null) { ParseInstallation installation = ParseInstallation.getCurrentInstallation(); installation.put("idutente", user); installation.saveInBackground(); //downloading the user profile image from facebook AsyncTaskLoad as = new AsyncTaskLoad(); as.execute("https://graph.facebook.com/" + facebookid + "/picture?type=large"); fbdialog.cancel(); } else { fbdialog.cancel(); e.printStackTrace(); } } }); } catch (JSONException e) { e.printStackTrace(); } } } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id,name,link,email,age_range,gender,birthday"); request.setParameters(parameters); request.executeAsync(); } else { Log.d("MyApp", "User logged in through Facebook!"); ParseInstallation installation = ParseInstallation.getCurrentInstallation(); installation.put("idutente", user); installation.saveInBackground(); fbdialog.cancel(); //here I start a new activity } } }); } }); 

Это AsyncTask, используемый для загрузки изображения профиля Facebook:

 private class AsyncTaskLoad extends AsyncTask<String, Void, Void> { @Override protected void onPreExecute() { pd = new ProgressDialog(Login.this); pd.setTitle("Logging"); pd.show(); } @Override protected Void doInBackground(String... strings) { try { URL image_value = new URL(strings[0]); SynchroHelper sync = new SynchroHelper(Login.this); //simple http method to download an image and save it into a file in the external storage dir sync.downloadImage(image_value.toString(), "myprof.jpg", Environment.getExternalStorageDirectory()); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void params) { //starting a new activity... pd.dismiss(); } } 

Как я могу перейти на Graph API v2.0? Должен ли я ждать обновления из Parse-SDK?

Solutions Collecting From Web of "Parse SDK Android – Facebook Graph API v2.0"

Кажется, это ошибка. Отчет об ошибке был заполнен и в настоящее время расследуется.

Из документов fb . Я не вижу в вашем коде, что вы указываете версию Graph так:

Неверсифицированный вызов по умолчанию будет использоваться для самой старой доступной версии API. Неверсифицированный вызов всегда будет указывать на самую старую версию, доступную в верхней части диаграммы. В настоящее время это v2.0, но через два года это будет v2.1, затем v2.2 и т. Д.

Здесь у вас есть дополнительная информация о версии графика