Iframe api jitsi not working with dropbox - javascript

If it can be integrated, the option is already in the moderator menu and my project is already linked with the DropBox app inside the app console, but it doesn’t save to the DropBox because the option needs to be enabled, it’s disabled by default.
enter image description here
When I enable that option manually if it saves the recording to DropBox
Is there a way to make that option start as enabled when starting the conference?
I have tried with this configuration
var options = {
fileRecordingsEnabled: true,
modules_enabled = {
"recording_autostart";
},
configOverwrite: {
dropbox: {
application key: 'XXXXXX'
} }, interfaceConfigOverwrite: { filmStripOnly: true } }`
It enables the dropbox but it does not store it automatically

Related

How to connect chrome extension to web application

How can I connect our chrome extension to our web application?
Our web application displays a list of wish list items to their user dashboard. The chrome extension grabs the information on the page of the item a user is viewing on a button click in the extension.
We need users to be able to login to the chrome extension using Auth0 to connect to their user account from the web application.
The chrome extension takes active tab information on the button click, creates a Link Preview via MicroLink API which includes URL, Image Source, Title, and Description in a JSON response.
We need to access/receive and store that JSON response to the Users table so that we can render a react component to that users wish list/dashboard when they log into the Web Application.
How can we go about making the two communicate? Does the Chrome Extension need to live within the Web React Application, or does it need to be a separate application?
super(props);
this.state = {
itemURL: 'https://www.item.url'
};
}
componentDidMount() {
chrome.tabs.query({ active: true, currentWindow: true }, tabs => {
const itemURL = new URL(tabs[0].url);
this.setState({
itemURL: itemURL,
});
console.log(itemURL);
});
}
render() {
return (
<ItemWrapper>
<MicrolinkCard
className='item-shadow'
url={this.state.itemURL}
media={['video', 'image', 'logo', 'screenshot']}
size='large'
/>
</ItemWrapper>
)
}```

Meteor: Authenticating Chrome Extension via DDP

I've built a Chrome Extension that takes a selection of text and when I right click and choose the context menu item, it sends that text to my Meteor app. This works fine, however, I can't figure out the process of using Oauth to authenticate users.
I'm using this package: https://github.com/eddflrs/meteor-ddp
Here is the JS within background.js (for Chrome Extension):
var ddp = new MeteorDdp("ws://localhost:3000/websocket");
ddp.connect().then(function() {
ddp.subscribe("textSnippets");
chrome.runtime.onMessage.addListener(function(message) {
ddp.call('transferSnippet', ['snippetContent', 'tag', snippetString]);
});
});
Here is the relevant portion of my other JS file within my Chrome Extension:
function genericOnClick(info) {
snippetString = [];
snippetString.push(info.selectionText);
var snippetTag = prompt('tag this thing')
snippetString.push(snippetTag);
chrome.runtime.sendMessage(snippetString);
}
And here is the relevant portion of my Meteor app:
'transferSnippet': function(field1, field2, value1, value2) {
var quickObject = {};
quickObject.field1 = value1[0];
quickObject.field2 = value1[1];
TextSnippets.insert({
snippetContent: value1[0],
tag: value1[1]
});
}
Basically I'm stuck and don't know how to go about making a DDP call that will talk to my Meteor app in order to authenticate a user
This question is a bit old, but if anyone is still looking for a solution. I had a similar problem that I was able to solve using the following plugin: https://github.com/mondora/asteroid. Here is an example of how to do it for twitter oauth:
https://github.com/mondora/asteroid/issues/41#issuecomment-72334353

Appcelerator Titanium - openFileChooserDialog does not exist: How to open a dialog to browse for a file?

I currently have the following code:
function openFileChooser() {
var options = {
title : "Select file to upload to cloud...",
types : ['mp3', 'm4a', 'aac', 'wav', 'aif', 'aiff'],
typesDescription : "Audio files",
path : Ti.Filesystem.applicationDataDirectory
};
//does not work
Ti.UI.openFileChooserDialog(function(filenames) {
fileSelected = filenames[0];
}, options);
$.filePath.text = fileSelected;
}
Basically, I am trying to open up a dialog for the user can browse for an audio file. I have seen examples of openFileChooserDialog on several sites, but my app crashes when it runs, stating that it does not exist.
Is there anything I can do where I can open a dialog for the user to browse for an audio file?
The openFileChooserDialog was part of the Titanium Desktop API, which was spun off to TideSDK. If this is a mobile project, that API call doesn't exist in the mobile space.

LaunchOptions.DesiredRemainingView - Split screen launched app

I am trying to open files in their native application from my app.
Windows.Storage.ApplicationData.current.localFolder.getFileAsync("downloads\\" + fileName).then(
function (file) {
var options = new Windows.System.LauncherOptions();
options.displayApplicationPicker = true;
options.desiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.useHalf;
Windows.System.Launcher.launchFileAsync(file, options).then(
function (success) {
if (success) {
//File launched
} else {
// File launch failed
}
});
});
I tried using the LauncherOptions.DesiredRemainingView to make sure every launch would have the apps split screen (50/50) and the native apps still open at whatever size they default to. Reader(50%), Photos(70%).
In the Windows Dev Center - Windows Store apps there is a sample for launching that includes the different enumerations of DesiredRemainingView and none of the enumerations worked when I built the downloaded sample.
Are there other options (LauncherOptions) that I need to modify/set?

"chrome.permissions is not available" when requesting optional permissions for my extension

I am building an extension that requires access to history to provide one of the features.
After publishing a version which contained the permission as mandatory and consequently losing a part of my users because they got scared away by the big alert saying that the extension might be able to snoop into their history (I really didn't plan on doing that), I decided to publish a version with the offending part removed and the permission disabled as a temporary fix.
I'd like to implement this feature back using optional permissions.
First of all, I added the new optional permission to my manifest file:
...
"permissions": [
"https://news.ycombinator.com/",
"http://news.ycombinator.com/"
],
"optional_permissions": [ "history" ],
...
Then, I built a function to request permissions into the script which handles the extension's settings:
Settings.prototype.applyPermissions = function (permissions, map) {
Object.keys(permissions).forEach(function (key) {
if (map[key]) {
var checkbox = map[key].getElementsByTagName("input")[0];
checkbox.addEventListener("change", function (e) {
if (this.checked) {
chrome.permissions.request(permissions[key], function(granted) {
if (granted) {
// Permission has been granted
} else {
// Not granted
}
});
}
});
}
});
};
The key part here is this:
checkbox.addEventListener("change", function (e) {
if (this.checked) {
chrome.permissions.request(permissions[key], function(granted) {
if (granted) {
// Permission has been granted
} else {
// Not granted
}
});
}
});
I perform the request on an event caused by user interaction (the guide states that it won't work otherwise), and pass permissions[key], an object specified in my extension's settings which looks like this:
"permissions": {
"mark_as_read": {
"permissions": ["history"]
}
}
When accessing it as permissions[key], I get this part:
{
"permissions": ["history"]
}
Which is basically the format that the documentation shows for this kind of requests.
If I run this code and toggle the checkbox that should enable the feature, and look at the error log, I see this error:
chrome.permissions is not available: You do not have permission to
access this API. Ensure that the required permission or manifest
property is included in your manifest.json.
I also tried accessing this API from a background page, where it was actually available but I was not allowed to use because Chrome requires that you access it from a user interaction, and such interaction is lost if you send a message to the background page from your content script to request activation.
Am I missing something obvious here? Maybe I need to add something to the manifest, but I can't find any explicit documentation about it.
I assume you're trying to do this from a content script. You can't access most chrome.* APIs from content scripts, including chrome.permissions. However, you've correctly pointed out that a background page is also unsuitable, because you a permission change requires a direct user action.
Luckily, we have hardly exhausted our options. You could set the permission in:
The extension's options page
A browser action popup
A page action popup
Any page in your extension served through the chrome-extension:// scheme, provided you include the page and necessary sub-resources as web_accessible_resources in your manifest
In the last case, get the URL using chrome.extension.getURL. You could possibly use an iframe to inject it directly into the page, if you don't want the permission-requesting interface to be separate from the current page.
So, in fact, content scripts and background pages are the only two extension contexts where you can't use chrome.permissions.

Categories

Resources