{ "id": "92464", "key": "TIMOB-9292", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "7", "description": "", "name": "Invalid" }, "resolutiondate": "2012-06-11T14:00:42.000+0000", "created": "2012-05-28T23:45:41.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "SupportTeam", "core" ], "versions": [ { "id": "13070", "description": "Release 1.8 Service Pack 2", "name": "Release 1.8.2", "archived": true, "released": true, "releaseDate": "2012-02-29" }, { "id": "13272", "description": "Release 2.0.1", "name": "Release 2.0.1", "archived": true, "released": true, "releaseDate": "2012-04-16" } ], "issuelinks": [], "assignee": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-03-09T23:29:48.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "h6.Issue\r\nAndroid is not able to tag an image multiple times. If the image is posted first is successfully published to Facebook. \r\n\r\nh6.To reproduce\r\nRun code below, authenticate through out Facebook and check out one's wall\r\n\r\nh6.Snippet code\r\n{code}\r\nTitanium.Facebook.appid = \"417551948276805\";\r\n\r\nvar myTags = [{\r\n 'to' : '100001066955730',\r\n 'tag_text' : 'y',\r\n 'x': 46.6667,\r\n 'y': 63.5556\r\n }, {\r\n 'to': '1558224573',\r\n 'tag_text': 'x',\r\n 'x': 44.4444,\r\n 'y': 60.8889 \r\n }];\r\n \r\n //tags: [{\"id\":\"100001066955730\", \"x\": 46.6667, \"y\": 63.5556}, {\"id\":\"1558224573\", \"x\": 42.6667, \"y\": 60.5556}]\r\n \r\nfunction showRequestResult(e){\r\n if (e.success) {\r\n \tvar ok = \"Success! From FB: \" + e.result;\r\n \tvar photo_id = JSON.parse(e.result);\r\n \talert(photo_id.id + ' @ '+photo_id.post_id);\r\n Ti.Facebook.requestWithGraphPath( photo_id.id +'/tags?tags=', myTags, 'POST', showRequestResult); \r\n } else {\r\n if (e.error) {\r\n alert(e.error);\r\n } else {\r\n alert(\"Unkown result\");\r\n }\r\n }\r\n}\r\n\r\n// First make sure this permission exists\r\nTitanium.Facebook.permissions = ['publish_stream', 'read_stream'];\r\n\r\nTi.Facebook.authorize();\r\n\r\n// Now post the photo after you've confirmed that authorize() succeeded\r\nvar f = Ti.Filesystem.getFile('ScrollableView.jpg');\r\nvar blob = f.read();\r\n \r\nvar data = {\r\n message: 'This is an Image',\r\n picture: blob,\r\n};\r\n\r\nTi.Facebook.requestWithGraphPath('me/photos', data, 'POST', showRequestResult);\r\n{code}\r\n\r\nh6.Stack trace - Razr OS 2.3.5\r\n{code}\r\n05-29 01:35:59.227: I/ALERT(12957): (KrollRuntimeThread) [6685,6685] 299437416817838 @ 100002547477374_299368723491374\r\n05-29 01:35:59.337: E/TiJSError(12957): (main) [104,6789] ----- Titanium Javascript Runtime Error -----\r\n05-29 01:35:59.337: E/TiJSError(12957): (main) [0,6789] - In app.js:22,19\r\n05-29 01:35:59.337: E/TiJSError(12957): (main) [1,6790] - Message: Uncaught Error: interface not implemented\r\n05-29 01:35:59.337: E/TiJSError(12957): (main) [0,6790] - Source: Ti.Facebook.requestWithGraphPath( photo_id.id +'/tags?tags=', myTags, 'P\r\n05-29 01:35:59.360: E/V8Exception(12957): Exception occurred at app.js:22: Uncaught Error: interface not implemented\r\n{code}\r\n\r\nh6.Facebook API ref\r\nhttps://developers.facebook.com/docs/reference/api/photo/\r\n", "attachment": [], "flagged": false, "summary": "Android: Uncaught Error: interface not implemented", "creator": { "name": "egomez", "key": "egomez", "displayName": "Eduardo Gomez", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "egomez", "key": "egomez", "displayName": "Eduardo Gomez", "active": false, "timeZone": "America/Los_Angeles" }, "environment": "Product: Mobile\r\nTitanium SDK: Mobile 1.8.2 & 2.0.1.GA2\r\nPlatform OS: Android\r\nPlatform OS Version: 2.3.5 & 2.3.6", "comment": { "comments": [ { "id": "198037", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "h3. Test App\r\n\r\nTest app in the description is not usable out of the box. Use this instead for testing:\r\n\r\n\r\n{code}\r\nvar w = Ti.UI.createWindow({backgroundColor: \"#444\"});\r\n\r\nTitanium.Facebook.appid = \"417551948276805\";\r\n \r\nvar myTags = [{\r\n 'to' : '100001066955730',\r\n 'tag_text' : 'y',\r\n 'x': 46.6667,\r\n 'y': 63.5556\r\n }, {\r\n 'to': '1558224573',\r\n 'tag_text': 'x',\r\n 'x': 44.4444,\r\n 'y': 60.8889 \r\n }];\r\n \r\n //tags: [{\"id\":\"100001066955730\", \"x\": 46.6667, \"y\": 63.5556}, {\"id\":\"1558224573\", \"x\": 42.6667, \"y\": 60.5556}]\r\n \r\nfunction showRequestResult(e){\r\n if (e.success) {\r\n var ok = \"Success! From FB: \" + e.result;\r\n var photo_id = JSON.parse(e.result);\r\n alert(photo_id.id + ' @ '+photo_id.post_id);\r\n Ti.Facebook.requestWithGraphPath( photo_id.id +'/tags?tags=', myTags, 'POST', showRequestResult); \r\n } else {\r\n if (e.error) {\r\n alert(e.error);\r\n } else {\r\n alert(\"Unkown result\");\r\n }\r\n }\r\n}\r\n \r\n// First make sure this permission exists\r\nTitanium.Facebook.permissions = ['publish_stream', 'read_stream'];\r\n\r\nfunction doTest() {\r\n\t// Now post the photo after you've confirmed that authorize() succeeded\r\n\tvar f = Ti.Filesystem.getFile('KS_nav_ui.png');\r\n\tvar blob = f.read();\r\n\t\t\t \r\n\tvar data = {\r\n\t\tmessage: 'This is an Image',\r\n\t\tpicture: blob,\r\n\t};\r\n\tTi.Facebook.requestWithGraphPath('me/photos', data, 'POST', showRequestResult);\r\n}\r\n \r\n\r\n \r\n//Ti.Facebook.authorize();\r\nTi.Facebook.addEventListener(\"login\", function(e) {\r\n\tif (e.success) {\r\n\t\tdoTest();\r\n\t}\r\n});\r\n\r\nw.add(Ti.Facebook.createLoginButton());\r\nw.open();\r\n{code}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-06-11T12:21:04.000+0000", "updated": "2012-06-11T12:21:04.000+0000" }, { "id": "198055", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Not sure why one would think this would work.\r\n\r\n* The documentation clearly states that the second argument of {{requestWithGraphPath}} is a dictionary object, not an array of dictionary objects.\r\n\r\n* I can't find anything in the referred-to facebook documentation that supports this. They do mention you can add tags by appending to the URL, but that's all I can see, and that's not what is being done here.\r\n\r\n* This test case is non-sensical. If the test happens to succeed, it keeps calling itself (via repeated callbacks to {{showRequestResult}}.\r\n\r\n* The original test case as given here would not work if you were _not_ already logged in. It ignores what happens with {{authorize}} and just immediately does the request.\r\n\r\n* Please include only complete test cases. The file named ScrollableView.jpg doesn't seem to be present here. Since the Facebook API call to add tags includes coordinates regarding where the tagged person is located in the photo, it *could* be relevant which photo/graphic to upload while testing. (i.e., who knows how Facebook reacts (success/failure?) if the coordinates you pass make no sense for the given photo? -- the test case shouldn't introduce variables like that.)", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-06-11T13:45:52.000+0000", "updated": "2012-06-11T13:45:52.000+0000" }, { "id": "411032", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as invalid.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-09T23:29:48.000+0000", "updated": "2017-03-09T23:29:48.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }