vendredi 27 février 2015

Android - Facebook Custom Story image not displayed

I got a custom story set up on my Facebook Developer for my app and I want to share a story with Android Facebook SDK. With the debug version of the app everything works fine, but when i sign it with my release key the preview just show me the website title ande the Facebook app image instead of the "object" title and image. Here's my code:


OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);



OpenGraphObject ogobj = OpenGraphObject.Factory.createForPost("item");
ogobj.setProperty("title", fb_data.getTitle());
ogobj.setProperty("image", obj.getPhotos().get(0));

ogobj.setProperty("description", fb_data.getDesc());
ogobj.setProperty("url", fb_data.getUrl());

List<Bitmap> shareImages = new ArrayList<Bitmap>();
shareImages.add(arg0);

action.setType("myapp:share");
action.setProperty("item", ogobj);

FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(Act_object.this, action, "item")
.build();

uiHelper.trackPendingDialogCall(shareDialog.present());


The action "share" has been approved by Facebook. If I don't set the "url" property, the dialog (in signed apk) doesen't show and logcat gives me this:



02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): com.facebook.http.protocol.ApiException: [code] 100 [message]: (#100) conflicting og:type found in path (myapp:item) and 'properties' (item) [extra]:
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.ApiResponseChecker.b(ApiResponseChecker.java:104)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:137)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:234)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:185)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.JsonResponseHandler.a(JsonResponseHandler.java:34)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.ApiResponseHandler.b(ApiResponseHandler.java:91)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.ApiResponseHandler.a(ApiResponseHandler.java:54)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.ApiResponseHandler.handleResponse(ApiResponseHandler.java:29)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:738)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:214)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:167)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:323)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.SingleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:550)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.SingleMethodRunnerImpl.b(SingleMethodRunnerImpl.java:257)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.http.protocol.AbstractSingleMethodRunner.a(AbstractSingleMethodRunner.java:20)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.platform.common.server.SimplePlatformOperation.a(SimplePlatformOperation.java:39)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.platform.common.server.PlatformOperationHandler.a(PlatformOperationHandler.java:59)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.fbservice.service.BlueServiceQueue.e(BlueServiceQueue.java:376)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.fbservice.service.BlueServiceQueue.d(BlueServiceQueue.java:62)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.fbservice.service.BlueServiceQueue$3.run(BlueServiceQueue.java:293)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at com.facebook.common.executors.ListenableScheduledFutureImpl.run(ListenableScheduledFutureImpl.java:60)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at android.os.Handler.handleCallback(Handler.java:739)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at android.os.Handler.dispatchMessage(Handler.java:95)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at android.os.Looper.loop(Looper.java:135)
02-24 16:29:21.129: W/fb4a(:<default>):BlueServiceQueue(9229): at android.os.HandlerThread.run(HandlerThread.java:61)


Can't really understand what I do wrong... Thanks in advance


EDIT: This is my new code and now I can put the image on my story



OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);

OpenGraphObject ogobj = OpenGraphObject.Factory.createForPost("myapp:item");

ogobj.setTitle(fb_data.getTitle());
ogobj.setProperty("name", fb_data.getTitle());
ogobj.setImageUrls(Arrays.asList(obj.getPhotos().get(0)));
ogobj.setUrl(fb_data.getUrl());
ogobj.setProperty("user_generated", "true");

List<Bitmap> shareImages = new ArrayList<Bitmap>();
shareImages.add(arg0);

action.setType("myapp:share");
action.setProperty("name", fb_data.getTitle());
action.setProperty("title", fb_data.getTitle());
action.setProperty("image", obj.getPhotos().get(0));
action.setProperty("item", ogobj);

FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(Act_object.this, action, "item")
.build();

uiHelper.trackPendingDialogCall(shareDialog.present());


This is what I see with the signed APK: enter image description here


Instead it should be like this (this is what happens with the debug app)


enter image description here


Prova3 is the name fb_data.getTitle() and the image is obj.getPhotos().get(0)


Aucun commentaire:

Enregistrer un commentaire