-
@nebulon luckily it is a feature that is partially critical. we dont know how many users will be embeding tiktoks, and from those embeds only the ones visited by users on iOS or safari on mac will have the issue. but i am pretty sure its gonna be some very small setting or adjustment somewhere to fix this, we must only figure out where
can one of you point me in the direction of how to set a CORS setting on cloudron? i have no clue about such things but if i play around a bit i might find a solution by chance.
-
@squareclouds CORS related settings would need to be adjusted in the remote server, not the one hosting it. So I don't think this is viable here nor is likely the main issue.
For CSP you can overwrite the headers at https://docs.cloudron.io/apps/#custom-csp or also via meta tags in the html directly. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
-
@girish said in Cloudron+LAMP: Tiktok Embed problems:
@squareclouds Most likely, this is not related to PHP version. But related to CSP or CORS configuration.
CSP (Content Security Policy) is set via a header and tells the browser what content is allowed/trusted by your web page. By default, Cloudron does not set any CSP header but you can override it . If your app has a CSP, then it can disable "embedding" of content . For example, youtube/tiktok videos etc can be prevented from being embedded.
CORS (Cross origin resource sharing) is set via headers. This tells the browser if ajax calls are allowed from another origin. Cloudron does not set CORS headers either. This means that "random.site.com" cannot call your "dev.mydomain.de" . This is good (tm).
OK, so, with this in mind and trying to understand your error: Blocked a frame with origin "https://www.tiktok.com" from accessing a frame with origin "https://dev.mydomain.de". This tells me that the tiktok frame is trying to access your domain. Is this understanding correct? Why is tiktok calling your domain? Maybe it's trying to report back something to the parent domain ? Is this just some random tiktok video?
but it seems that there is a call from tiktok to our server, which would mean that our server needs the cors, or not?
-
@squareclouds I don't think tiktok will call your server, anyways there is no service besides apache running to call into.
-
@nebulon random guess - TikTok is doing some Postmessage to parent frame which is getting blocked. This is what I inferred from the original error that @squareclouds posted.
I might get access to a Mac later today, i will try. Very intriguing.
-
@squareclouds I tried the site on Mac Ventura with Firefox, Chrome and Safari. It all loads fine.
Also loads fine on an iphone with safari/chrome . So, I am yet to see this fail anywhere.
Did you get reports from all iphone/mac users that the site does not load?
-
@girish you can play the embed? because it loads, yes, but the playing is the problem. it does not autoplay nor you can play it by clicking it, it has no interaction
we are still not live, so we are only a few people, but yes, its not only on my macs and iphones (i have an old iphone and old mac as well, so me alone have tested on 4 devices and then the lead designer as well).
-
@squareclouds I can confirm this on latest iOS. Sitting in a train and can not further investigate.
The play button is rendered but is not clickable while the buttons on the right all link to TikTok (as they should)
-
@jaschaezra thanks for testing.
@squareclouds ok, we can reproduce this too . Looks like a Safari specific issue. Mac/Firefox and Mac/Chrome plays fine (can you confirm this?)
In https://www.buzzfeed.com/buzzfeedstaff/how-to-get-tiktoks-to-play and https://florisdeleeuwnl.zendesk.com/hc/en-us/articles/360013564340-Embedded-video-not-working-in-Safari , they suggest unchecking "Prevent Cross-Site Tracking" but atleast here that doesn't help.
-
@squareclouds do you happen to have your website hosting link with the tiktok embed? No idea what's going on at this point. We have to compare what is working and what is not.
-
@girish yes, I confirm that on mac only safari has this issue, on iOS it is all browsers (maybe because they have to go through the app store?)
hmm, sure, technically I shouldn't share it but since it is for its own sake:
again, I think we were close already with the CORS, because tiktok tries to reach to the website from the iframe. is there a way that I can explicitly allow it to see what happens?
-
@squareclouds I removed that link, why cause concerns. You can send us the link to support@cloudron.io . As for CORS, I have already tested this part. It's not CORS related. Something to do with content blocking in safari or maybe some other configuration on nginx.
-
AFAIK autoplay is stopped on all browsers by default nowadays - probably because it is annoying as hell.
OptimizePress has a good approach to this:
- https://www.optimizepress.com/
- https://docs.optimizepress.com/article/2759-video-autoplay-not-working/
- https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide
TikTok is also going to get blocked my anyone using any adblockers or tracking blocking settings in their browsers. For that you'll need an adblock banner, too:
Ad unblock banners are also annoying, but if you have no choice but to use TikTok (which morally I wouldn't touch it, but maybe you have to just get the job done, pay billz, and move on from this client)
-
@marcusquinn thank you, its noted. firstly it would be more important to get make it behave like on all other browsers and servers. if the user decides to block by their own will is another story
-
@squareclouds Can you download the video and just embed a .mp4 file?
I don't know what advantage TikTok embeds would have, would seem like more downsides to me, both in your cost of trying to make it work, and user privacy.
Don't know if YouTube is any better, but that might give you a way to compare if you think this is a Cloudron setup issue, or just an issue with the way browsers work with what you're trying to do.
-
@marcusquinn not doable, I need the server to work with tiktok by its own. its not 1 video, any user can embed a tiktok, so potentially its hundreds. we also have spotify, youtube, vimeo, twitter, soundcloud and instagram embeds, all working fine. all simple things have already been tested and compared, thats why i am here. at some point I didnt know what to test anymore
-
@squareclouds said in Cloudron+LAMP: Tiktok Embed problems:
thats why i am here. at some point I didnt know what to test anymore
After the extensive amount of discussion in this thread, if you haven't solved it and you still want help from the community, maybe you should share the URL of the site running on Cloudron.
Forum posts get indexed by search engines, so probably share a temporary alias which gets removed later.
Also I think I read you don't have the non-Cloudron site running. If that's correct, may I suggest you get one running again for the point of comparison, and of course share its URL (or rather an alias if needed).
Otherwise people trying to help are just guessing.