अब मैं एक छोटी सी परियोजना कर रहा हूं जो शेयर बटन (संवाद) रखना चाहता है, जब उपयोगकर्ता इसे क्लिक करते हैं, तो वह अपने एफबी खाते में स्वतः लॉगिन करेगा और वे सामग्री साझा करें जो वे चाहते हैं।फेसबुक एंड्रॉइड एसडीके 3.0, लॉग इन बटन के बिना सामग्री कैसे साझा करें
fb dev से ट्यूटोरियल के बाद, मेरा ऐप दीवार पर सामग्री साझा कर सकता है, लेकिन साझा करने से पहले एक fblogin बटन से लॉगिन करने की आवश्यकता है।
मैं stackoverflow से एक पोस्ट पढ़ लिया है: Android - Facebook SDK 3 - How to login programmatically without LoginButton
अद्यतन: मैं अपने प्रोजेक्ट में onActivityResult साथ feedDialog लागू है, मैंने पाया कि मैं प्रवेश कर सकते हैं और एक बटन के साथ साझा करें। हाउवर, जब मैं ऐप का पुनर्निर्माण करता/अपने फोन को पुनरारंभ करता हूं, मुझे पहली बार पर साझा करने के लिए बटन को दो बार दबा देना है, लेकिन बाद में सामान्य (एक बार दबाएं) बनें।
P.S.I ShareActionProvider
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getSupportMenuInflater().inflate(R.menu.content_main, menu);
/** Getting the actionprovider associated with the menu item whose id is share */
mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share).getActionProvider();
/** Getting the target intent */
Intent intent = getDefaultShareIntent();
/** Setting a share intent */
if(intent!=null){
mShareActionProvider.setShareIntent(intent);
mShareActionProvider.setOnShareTargetSelectedListener(new OnShareTargetSelectedListener(){
@Override
public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) {
if ("com.facebook.katana".equals(intent.getComponent().getPackageName())){
if (Session.getActiveSession() == null || Session.getActiveSession().isClosed()) {
Session.openActiveSession(Content.this, true, null);
}else{
publishFeedDialog();
}
return true;
}
return false;
}
});
}
return super.onCreateOptionsMenu(menu);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
if (Session.getActiveSession() != null || Session.getActiveSession().isOpened())
publishFeedDialog();
}
private void publishFeedDialog() {
Bundle params = new Bundle();
params.putString("name", "ab");
params.putString("caption", "cd");
params.putString("description", "def");
params.putString("link", "https://developers.facebook.com/android");
params.putString("picture", "abc.jpg");
WebDialog feedDialog = (
new WebDialog.FeedDialogBuilder(Content.this,
Session.getActiveSession(),
params))
.setOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(Bundle values,
FacebookException error) {
if (error == null) {
// When the story is posted, echo the success
// and the post Id.
final String postId = values.getString("post_id");
if (postId != null) {
Toast.makeText(Content.this,
"Posted story, id: "+postId,
Toast.LENGTH_SHORT).show();
} else {
// User clicked the Cancel button
Toast.makeText(Content.this.getApplicationContext(),
"Publish cancelled",
Toast.LENGTH_SHORT).show();
}
} else if (error instanceof FacebookOperationCanceledException) {
// User clicked the "x" button
Toast.makeText(Content.this.getApplicationContext(),
"Publish cancelled",
Toast.LENGTH_SHORT).show();
} else {
// Generic, ex: network error
Toast.makeText(Content.this.getApplicationContext(),
"Error posting story",
Toast.LENGTH_SHORT).show();
}
}
})
.build();
feedDialog.show();
}
जाओ मिंग के माध्यम से ली जवाब और उनकी टिप्पणी (दूसरा)। –
मुझे पता है, लेकिन मैं वास्तव में थोड़ा और स्पष्टीकरण या कोड बीकॉक्स चाहता हूं जो मुझे समझ में नहीं आता ........ मैं एंड्रॉइड देव –
@ कैल्विन चेन के लिए नया हूं, क्या आप इसे खींचने में सक्षम हैं? मैं उसी समाधान की तलाश में हूं जहां मैं फोटो – Casper