[英]what is the use of facebook.authorizeCallback() method in facebook-android sdk?
[英]Trouble with accessing friends using Facebook-Android SDK
我一直在努力使用android和Facebook的graph API,並且我相信這對中級程序員來說是小菜一碟。 我想要的是一個非常簡單的Android應用程序,該應用程序將用戶登錄到Facebook,征得用戶的同意以訪問信息,最后無縫查詢圖形API以獲取用戶的朋友。 我提到了無縫的工作,因為我看到了許多示例應用程序,這些應用程序要求用戶按“獲取朋友”按鈕,但我不希望那樣做。 我希望提取用戶朋友而不需要他推任何東西。
我已經粘貼了下面的代碼。 我可以登錄並向我的應用程序授予權限。 接下來,我希望它顯示我的朋友,但它只會將我定向到空白頁面。 問題可能是我在錯誤的地方訪問了圖形API,因為Logcat不包含我在請求之前和之后打印的消息 。 請你幫助我好嗎。
公共類FacebookLogin擴展了活動{
Facebook mFacebook = new Facebook("XXXXXXXXXXXX");
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(mFacebook);
View linearLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
linearLayout = findViewById(R.id.main_layout);
mFacebook.authorize(this, new DialogListener() {
@Override
public void onComplete(Bundle values)
{
Log.d("Facebook-Example-Friends Request", "Started API request");
mAsyncRunner.request("me/friends", new FriendsRequestListener());
Log.d("Facebook-Example-Friends Request", "Finished API request");
}
@Override
public void onFacebookError(FacebookError error) {}
@Override
public void onError(DialogError e) {}
@Override
public void onCancel() {}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mFacebook.authorizeCallback(requestCode, resultCode, data);
}
public class FriendsRequestListener implements RequestListener
{
/**
* Called when the request to get friends has been completed.
* Retrieve, parse and display the JSON stream.
*/
public void onComplete(final String response)
{
Log.d("Facebook-Example-Friends Request", "FriendsListenerOnComplete");
try
{
JSONObject json = Util.parseJson(response);
final JSONArray friends = json.getJSONArray("data");
FacebookLogin.this.runOnUiThread(new Runnable()
{
public void run()
{
int l = (friends != null ? friends.length() : 0);
for (int i=0; i<l; i++)
{
try
{
JSONObject o = friends.getJSONObject(i);
TextView tv = new TextView(FacebookLogin.this);
tv.setText(o.getString("name"));
((LinearLayout) linearLayout).addView(tv);
}
catch(JSONException e)
{
Toast.makeText(getApplicationContext(), "JSON parsing error", Toast.LENGTH_LONG);
}
}
}
});
}
catch(JSONException e)
{
Log.d("Facebook-Example-Friends Request", "JSON Error in response");
}
catch(FacebookError e)
{
Log.d("Facebook-Example-Friends Request", "Facebook Error in response");
}
}
}
}
我想你看到這個答案你有一些想法.. 的Facebook / Twitter的整合在我的Android應用程序
和
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.