it-swarm.com.de

So erhalten Sie ein Facebook-Profilbild in Android

Ich verwende Facebook SDK 4.4.0 in Android und möchte ein aktuelles Profilbild des Benutzers unter Verwendung der Diagrammanforderung erhalten. Wie geht das?

Ich habe gesehen, dass die Leute verwenden 

https://graph.facebook.com/me/picture?access_token=ACCESS_TOKEN

API zum Extrahieren von Profilbildern, aber ich kann nicht herausfinden, wie man Profilbilder daraus extrahiert.

11
anupam x

Sie müssen die GraphRequest-API aufrufen, um alle Benutzerdaten zu erhalten, in denen die API auch die URL des aktuellen Profilbilds angibt.

Bundle params = new Bundle();
params.putString("fields", "id,email,gender,cover,picture.type(large)");
new GraphRequest(AccessToken.getCurrentAccessToken(), "me", params, HttpMethod.GET,
        new GraphRequest.Callback() {
            @Override
            public void onCompleted(GraphResponse response) {
                if (response != null) {
                    try {
                        JSONObject data = response.getJSONObject();
                        if (data.has("picture")) {
                            String profilePicUrl = data.getJSONObject("picture").getJSONObject("data").getString("url");
                            Bitmap profilePic= BitmapFactory.decodeStream(profilePicUrl .openConnection().getInputStream());
                            mImageView.setBitmap(profilePic);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
}).executeAsync();
52
Rajesh

Von der letzten SDK 4.5.0

 String url;
 Bundle parametersPicture = new Bundle();
 parametersPicture.putString("fields", "picture.width(150).height(150)");

 GraphResponse lResponsePicture = new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/",
                        parametersPicture, null).executeAndWait();
 if (lResponsePicture != null && lResponsePicture.getError() == null &&
                            lResponsePicture.getJSONObject() != null) {
     url = lResponsePicture.getJSONObject().getJSONObject("picture")
                                .getJSONObject("data").getString("url");
 }
15
Dmitriy Puchkov

Sie können dies auf zwei verschiedene Arten haben. 

Weg 1: Integrieren Sie die grafische API-Unterstützung https://developers.facebook.com/docs/graph-api/reference/user/picture/

Weg2: Über Anruf abrufen http: // graph.facebook.com/{facebook-Iektion}/picture?width=x&height=y

wobei x und y eine beliebige ganze Zahl sein können, z. 100

3
Faizan Tariq

Wenn Sie ein wirklich großes Bild wünschen, müssen Sie dies angeben. mindestens eine Bildgröße - z.

String profileImg = "https://graph.facebook.com/" + loginResult.getAccessToken().getUserId() + "/picture?type=large&width=1080";

Sie können auch beide Größen angeben (add & height = some_val). Facebook schneidet dann dieses Profilbild zu.

3
Anton Kizema

protected void rajendra (LoginButton login_button) {

    login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult login_result) {
            GraphRequest request = GraphRequest.newMeRequest(
                    login_result.getAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(
                                JSONObject object,
                                GraphResponse response) {

                            response.getError();

                            try {
                                if (Android.os.Build.VERSION.SDK_INT > 9) {
                                    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                                    StrictMode.setThreadPolicy(policy);
                                    String profilePicUrl = object.getJSONObject("picture").getJSONObject("data").getString("url");

                                    URL fb_url = new URL(profilePicUrl);//small | noraml | large
                                    HttpsURLConnection conn1 = (HttpsURLConnection) fb_url.openConnection();
                                    HttpsURLConnection.setFollowRedirects(true);
                                    conn1.setInstanceFollowRedirects(true);
                                    Bitmap fb_img = BitmapFactory.decodeStream(conn1.getInputStream());
                                    image.setImageBitmap(fb_img);
                                }
                            }catch (Exception ex) {
                                ex.printStackTrace();
                            }
                        }
                    });
            Bundle parameters = new Bundle();
            parameters.putString("fields", "id,picture");
            request.setParameters(parameters);
            request.executeAsync();
        }
2
rajendra

Holen Sie sich ein Bild von Facebook

String image_url = "http://graph.facebook.com/" + Profile.getCurrentProfile().getId() + "/picture?type=large";
Glide.with(activity)
     .load(image_url)
     .into(imageView);

abhängigkeit

implementation 'com.github.bumptech.glide:glide:4.1.1'
2
try {
String fbId="970463683015249";
URL fb_url = new URL("http://graph.facebook.com/"+fbId+"/picture?type=small");//small | noraml | large
HttpsURLConnection conn1 = (HttpsURLConnection) fb_url.openConnection();
HttpsURLConnection.setFollowRedirects(true);
conn1.setInstanceFollowRedirects(true);
Bitmap fb_img = BitmapFactory.decodeStream(conn1.getInputStream());
}catch (Exception ex) {
  ex.printStackTrace();
  }

Rufen Sie einfach diese URL auf:

graph.facebook.com/<facebook_user_id>/picture?type=large

typ kann groß, normal oder klein sein.

Eine andere Möglichkeit ist die Verwendung von ProfilePictureView

<com.facebook.login.widget.ProfilePictureView
    Android:id="@+id/image"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_centerInParent="true"
    facebook:preset_size="small"/>

Danach können Sie die Facebook-ID im Code so einstellen

profilePictureView.setProfileId(facebookUserId);
0
Malwinder Singh

facebook-Bild

https://graph.facebook.com/ "+ facebookUid +"/picture? height = 9999 & redirect = 0 "

google Bild 

Zeichenfolge googleEmailName = googleEmail.substring (0, googleEmailName.indexOf ("@"))

http://picasaweb.google.com/data/entry/api/user/ "+ googleEmailName +"? alt = json

0
HongSec Park