我正在开发一款应用程序,我必须将 facebook照片加入到我的应用程序中。如何在我的Android应用程序中获取Facebook个人资料图片?
它可能在android中?
请帮帮我。
感谢和问候, durgesh Limbani
我正在开发一款应用程序,我必须将 facebook照片加入到我的应用程序中。如何在我的Android应用程序中获取Facebook个人资料图片?
它可能在android中?
请帮帮我。
感谢和问候, durgesh Limbani
是的,这是可能的(对不起,你问一个是/否的问题:))
使用Facebook Android SDK中,生成新的Facebook应用程序身份证和所有爵士乐。然后,在您的应用程序中,您必须要求用户获得访问其个人资料数据的权限,您可以使用图表api获取个人资料图片。
如果您需要更具体的步骤帮助,请提出具体问题。
你可以请建议如何显示在Facebook ProfilePictureView圆形图像。 – Ravi
使用Android Facebook API,可以从中获取Facebook数据。 http://www.ibm.com/developerworks/library/x-androidfacebookapi/ 检查此链接。
Facebook类别在Facebook 3.0中弃用 – blackjack
所有你需要的是用户的用户ID,那么你可以这样调用一个函数:
/**
* Function loads the users facebook profile pic
*
* @param userID
*/
public Bitmap getUserPic(String userID) {
String imageURL;
Bitmap bitmap = null;
Log.d(TAG, "Loading Picture");
imageURL = "http://graph.facebook.com/"+userID+"/picture?type=small";
try {
bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageURL).getContent());
} catch (Exception e) {
Log.d("TAG", "Loading Picture FAILED");
e.printStackTrace();
}
return bitmap;
}
您可以更改IMAGEURL类型得到不同大小的图片。
对于那些仍然徘徊: 使用Facebook SDK,你可以在你的XML实现ProfilePictureView
如图所示:
<com.facebook.widget.ProfilePictureView
android:id="@+id/profilePicture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:is_cropped="true"
app:preset_size="small" />
然后,一旦你有你的用户ID(必须做出请求来获取那一个,但这是另一回事),你可以得到ProfilePictureView
本身并拨打:
ProfilePictureView profilePicture = (ProfilePictureView) view.findViewById(R.id.profilePicture);
profilePicture.setProfileId(userID);
哪里userID
是包含你从Facebook要求用户ID的String
。
但这种观点根本不灵活。例如,如果你想要一个圆形图像。 – Loolooii
你可以请分享我如何显示圆形图像。我搜索了很多,但没有找到任何东西。 – Ravi
我已经使用这个来获取初始登录时的图片,以及facebook SDK,但我不确定如何在每次加载应用程序时将其恢复。 – ntgCleaner
布局activity_facebook_main作为
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<com.facebook.widget.ProfilePictureView
android:id="@+id/userProfilePicture"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:gravity="center_horizontal"
facebook:preset_size="small" />
<TextView
android:id="@+id/userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_gravity="center"
android:textColor="#333"
android:textSize="18sp" />
</LinearLayout>
和你FacebookMainActivity代码
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
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;
import com.facebook.widget.ProfilePictureView;
public class FacebookMainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_facebook_main);
Session.openActiveSession(this, true, new Session.StatusCallback() {
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
ProfilePictureView profilePictureView = (ProfilePictureView) findViewById(R.id.userProfilePicture);
profilePictureView.setCropped(true);
profilePictureView.setProfileId(user.getId());
TextView Name = (TextView) findViewById(R.id.userName);
Name.setText(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);
}
}
private void saveFacebookProfilePicture(final String userID){
new Thread(new Runnable() {
@Override
public void run() {
try{
URL imageUrl = new URL("https://graph.facebook.com/" + userID + "/picture?type=large");
Bitmap bitmap = BitmapFactory.decodeStream(imageUrl.openConnection().getInputStream());
FileOutputStream fileOutputStream = new FileOutputStream(new File(getFilesDir(),ProfileEditActivity.PROFILE_PIC));
bitmap.compress(CompressFormat.PNG, 100, fileOutputStream);
}catch(Exception e)
{
Log.e(TAG, ""+e.getMessage());
}
}
}).start();
}
我发现我这个问题的答。我使用图形API。链接http://developers.facebook.com/docs/reference/api/ – Dugs