对不起,我可以说我不完全知道我在说什么.例如,要打开Facebook的URL,前缀为"fb://".有没有人碰巧知道Dropbox的前缀?
我很确定它有一个,因为在新的Dropbox API(1.0)中它会从你的应用程序中打开Dropbox应用程序让用户登录,而我知道这样做的唯一方法就是通过其中一个前缀我不知道它们叫什么的东西.
我实际上并不想在Dropbox中打开文件.我实际上想要检测iPhone上是否安装了Dropbox,我想到的最好的方法是使用这种方法(显示是否安装了Facebook应用程序).
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://"]]) {
NSLog(@"Facebook is installed.");
} else {
NSLog(@"Facebook is not installed.");
}
Run Code Online (Sandbox Code Playgroud)
如果您知道检测此应用程序是否已安装的更好方法,请分享.
我正在为我的iOS应用程序添加Dropbox支持.在线使用官方Dropbox API和教程 ,我已经达到了Dropbox需要进行身份验证的程度.下面的代码是按下按钮时给出的身份验证:
//MainViewController.m
....
@implementation CryptoMainViewController
.....
#pragma mark - Dropbox
- (void)didPressLink {
if (![[DBSession sharedSession] isLinked]) {
[[DBSession sharedSession] link];
}
}
Run Code Online (Sandbox Code Playgroud)
但无论我如何更改代码,我把它放在哪里或者我将它链接到哪个按钮,都不会发生任何事情.使用断点我发现该方法事实上已被触发.我甚至把它放在IBAction中,但这给出了相同的结果.我究竟做错了什么?如何让我的应用程序对最终用户进行身份验证?
并且,一旦通过身份验证,我如何将NSString保存到用户的Dropbox?
如果这完全错了,那么我在哪里可以找到有关如何正确执行此操作的资源?
整个教程,所有文档,api等都可以在这里找到.
我现在已经和他一起战斗了6个小时.我已经关注了Dropbox的"教程"(如果它们可以被称为,因为它们非常差),使用DBRoulette示例,并完成了大量的工作以使我的应用程序正常工作.
我的应用程序可以正常进行身份验证.但是,尽管做了教程正在做的事情,但我无法上传任何内容:
这是我的一小段代码(这是为了在手机上保存创建的笔记,然后上传到Dropbox):
saveBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
try
{
//Create the directory if it doesn't exist. If it does exist the next two line won't do anything.
File dropNotesDir = new File(Environment.getExternalStorageDirectory() + "/documents/AppData/Dropnotes/");
dropNotesDir.mkdirs();
//-----------------------------------------------------------------------------------------------
String wholeNoteString = noteBody.getText().toString();
//Now we create the title of the txt file. It will be the first line of the whole note. The name will get truncated to 32 characters
//if it's too long.
String noteTitle;
if(wholeNoteString.indexOf("\n") >= …Run Code Online (Sandbox Code Playgroud) 我正在使用iOS Dropbox Chooser.我能够通过他们的文档按预期集成
但是,在模拟器中,选择器会要求您安装Dropbox应用程序进行身份验证.有什么方法可以解决这个问题,以便我可以在模拟器中从我的Dropbox中获取文件吗?
我使用此示例将文件上传到Dropbox:
http://cgeers.com/2012/03/11/dropbox-rest-api-part-5-file-upload/
这是:
public FileSystemInfo UploadFile(string root, string path, string file)
{
//...
}
Run Code Online (Sandbox Code Playgroud)
该方法有3个参数:
root:指定路径的根目录.有效值为沙箱和保管箱.
path:要上载的文件的路径.
file:要上载的本地文件的绝对路径调用此方法如下:
var file = api.UploadFile("dropbox", "photo.jpg", @"C:\Pictures\photo.jpg");
Run Code Online (Sandbox Code Playgroud)
Dropbox API与示例完全相同:
所以没有提到"父文件夹"..
如何在特定文件夹而不是根目录下上传文件?
我是Android编程的初学者.我一直在努力让Dropbox融入我正在编写的应用程序的[开头].我按照说明查看了Dropbox API附带的基本示例DBRoulette.
我一直遇到的问题是我登录Dropbox(通过网络浏览器),然后确认该应用程序可以使用其Dropbox App文件夹......对于该会话,它工作正常,但是当我完全关闭应用程序并打开它再次,我被要求再次登录!我绝对不想再次重新输入我的所有Dropbox登录内容,即使这只是出于调试目的.有趣的是DBRoulette工作正常,我不必每次都登录!我复制粘贴了该示例中的大部分功能代码.
我们在谈论它时,AccessTokens究竟包含/做什么?他们是否存储信息以创建授权会话?这些信息是否与我从Dropbox开发者网站获得的App key/secret组合不同?我认为这是我的错误,但我不确定.
这是活动:
package com.JS.music;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.dropbox.client2.DropboxAPI;
import com.dropbox.client2.android.AndroidAuthSession;
import com.dropbox.client2.session.AccessTokenPair;
import com.dropbox.client2.session.AppKeyPair;
import com.dropbox.client2.session.TokenPair;
import com.dropbox.client2.session.Session.AccessType;
public class MainActivity extends Activity {
private static String TAG = "MainActivity";
private Button gotoRecordingButton;
private Button libraryButton;
//Dropbox
final static private String APP_KEY = "xxxxxxxxxxxxx";
final static private String APP_SECRET = "xxxxxxxxxxxxxx";
final static private AccessType ACCESS_TYPE = …Run Code Online (Sandbox Code Playgroud) 我正在使用dropbox php sdk构建我的应用程序我正在尝试使用以下代码访问核心API
function getWebAuth()
{
$appInfo = dbx\AppInfo::loadFromJsonFile("../dropbox.json");
$clientIdentifier = "My-demo-app/1.0";
$redirectUri = "http://localhost/demo.app/public/dropbox-finish-oauth";
$csrfTokenStore = new dbx\ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token');
return new dbx\WebAuth($appInfo, $clientIdentifier, $redirectUri,$csrfTokenStore);
}
//My controller => http:://localhost/demo.app/public/dropbox
Route::get('dropbox',function(){
$authorizeUrl = getWebAuth()->start();
return Redirect::to($authorizeUrl);
});
//dropbox redirect uri
Route::get('dropbox-finish-oauth',function(){
list($accessToken, $userId, $urlState) = getWebAuth()->finish($_GET);
});
Run Code Online (Sandbox Code Playgroud)
一切都很好在第一个控制器它重定向到Dropbox登录页面我填写用户名和密码然后页面重定向到指定的uri我得到以下异常csrf未找到异常
我正在尝试遍历python中的文件夹结构,并将找到的每个文件上传到指定的文件夹.问题是它上传的文件名正确,但没有内容,文件大小只有10个字节.
import dropbox, sys, os
try:
dbx = dropbox.Dropbox('some_access_token')
user = dbx.users_get_current_account()
except:
print ("Negative, Ghostrider")
sys.exit()
rootdir = os.getcwd()
print ("Attempting to upload...")
for subdir, dirs, files in os.walk(rootdir):
for file in files:
try:
dbx.files_upload("afolder",'/bfolder/' + file, mute=True)
print("Uploaded " + file)
except:
print("Failed to upload " + file)
print("Finished upload.")
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据http api文档交换我的Dropbox oauth代码以获取令牌.
当我用curl执行命令时:
curl https://api.dropbox.com/1/oauth2/token \
-d code=<authorization code> \
-d grant_type=authorization_code \
-u <app key>:<app secret>
Run Code Online (Sandbox Code Playgroud)
一切正常,我收到了我的持票人令牌.不幸的是,似乎是在node.js中使用请求模块编写的等效代码失败了.
var request = require("request");
var config = require("./config.json");
request({
url: "https://api.dropboxapi.com/1/oauth2/token",
method: "POST",
auth: {
user: config.client_id,
pass: config.client_secret
},
json: {
code: config.code,
grant_type: "authorization_code"
}
}, function(err, resp, body) {
if (err) throw err;
console.log(body);
});
Run Code Online (Sandbox Code Playgroud)
日志:
{ error_description: 'missing required field "grant_type"',
error: 'invalid_request' }
Run Code Online (Sandbox Code Playgroud)
文档 说如果出现400错误(这是),我有:
输入参数错误.错误消息应指明哪一个和原因.
虽然如可以从上面的代码中可以看出,grant_type 是被指定.
值得注意的是,文档提供了第二种身份验证选项,尽管这也失败了,尽管有一个不同的消息:
说明(删节)
需要使用应用程序的密钥和密钥对/ oauth2/token的调用进行身份验证.这些可以作为POST参数传递(参见下面的参数)或通过HTTP基本身份验证传递.如果使用基本身份验证,则应将app键作为用户名提供,并应提供app …
我正在使用新的Dropbox SDK v2 for .NET.
我正在尝试将文档上传到Dropbox帐户.
public async Task UploadDoc()
{
using (var dbx = new DropboxClient("XXXXXXXXXX"))
{
var full = await dbx.Users.GetCurrentAccountAsync();
await Upload(dbx, @"/MyApp/test", "test.txt","Testing!");
}
}
async Task Upload(DropboxClient dbx, string folder, string file, string content)
{
using (var mem = new MemoryStream(Encoding.UTF8.GetBytes(content)))
{
var updated = await dbx.Files.UploadAsync(
folder + "/" + file,
WriteMode.Overwrite.Instance,
body: mem);
Console.WriteLine("Saved {0}/{1} rev {2}", folder, file, updated.Rev);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码段实际上在Dropbox帐户上创建了一个test.txt文档,其中包含"Testing!" 内容,但我想上传一个带有给定路径的文档(例如:"C:\ MyDocuments\test.txt"),这可能吗?
任何帮助将非常感谢.
dropbox-api ×10
dropbox ×5
ios ×3
android ×2
c# ×2
objective-c ×2
deep-linking ×1
dropbox-php ×1
http-post ×1
iphone ×1
javascript ×1
oauth ×1
php ×1
python ×1
request ×1