2013-05-21 119 views
0

在我之前提出的问题How to upload video in vimeo account through vimeo api in Symfony 2.2现已关闭。现在我有,我想通过我的应用程序与VIMEO API帮助到我使用的如何通过Vimeo api从Vimeo帐户中删除视频

“vimeo.videos.delete”方法 下面

给出删除还有Vimeo帐户上传的视频多了一个要求
/** 
* Deletes a Video entity. 
* 
* @Route("/{id}", name="video_delete") 
* @Method("DELETE") 
* @Secure(roles="ROLE_SUPER_ADMIN") 
*/ 
public function deleteAction(Request $request, $id) 
{ 
    $vimeo = new phpVimeo('my_api_key', 'my_api_key_secret', 'my_token', 'my_token_secret'); 
    $form = $this->createDeleteForm($id); 
    $form->bind($request); 
    $em = $this->getDoctrine()->getManager(); 
    $video = $em->getRepository('MyBundle:Video')->find($id); 

     if (!$video) { 
      throw $this->createNotFoundException('Unable to find Video entity.'); 
     } 
    $videoId = $video->getVideoId(); 

    if ($form->isValid()) { 
     try 
     { 
     $vimeo->call('vimeo.videos.delete',array('video_id',$videoId)); 
     $em->remove($video); 
     $em->flush(); 
    } 
    catch (VimeoAPIException $e) { 
      echo "Encountered an API error -- code {$e->getCode()} - {$e->getMessage()}"; 
     } 
    } 

    return $this->redirect($this->generateUrl('video')); 
    } 
} 

但是,当我试图删除我的应用程序选择的视频,它尝试删除该视频,但同时这段视频从我的数据库引用的相关信息,而我要的是删除无法删除还有Vimeo账户视频从数据库和Vimeo帐户中删除视频。我不知道我在做什么错误?

如果有任何关于此问题的帮助可供任何人使用,请帮我解决此问题。

+4

请不要通过编辑它来解答你的问题,并把标题中的(解决)。 Insted发表一个答案并接受它。 Thx – 0x1gene

回答

0

现在通过编码的一点点改变我解决了它!

/** 
* Deletes a Video entity. 
* 
* @Route("/{id}", name="video_delete") 
* @Method("DELETE") 
* @Secure(roles="ROLE_SUPER_ADMIN") 
*/ 
public function deleteAction(Request $request, $id) 
{ 
    $form = $this->createDeleteForm($id); 
    $form->bind($request); 
    $em = $this->getDoctrine()->getManager(); 
    $video = $em->getRepository('MyBundle:Video')->find($id); 

     if (!$video) { 
      throw $this->createNotFoundException('Unable to find Video entity.'); 
     } 
    $videoId = $entity->getVideoId(); 

    if ($form->isValid()) { 
     try 
     { 
     $api = $this->api(); 

     $method = 'vimeo.videos.delete'; 

     $query = array(); 
     $query['video_id'] = $videoId; 

     $r = $api->call($method, $query); 

    } 
    catch (VimeoAPIException $e) { 
      echo "Encountered an API error -- code {$e->getCode()} - {$e->getMessage()}"; 
     } 
     $em->remove($video); 
     $em->flush(); 
    } 

    return $this->redirect($this->generateUrl('video',array('result'=> $r))); 
    } 

public function api() 
{ 
    $consumer_key = 'my_api_key'; 
    $consumer_secret = 'my_api_key_secret'; 

    $token = 'my_access_token'; 
    $token_secret = 'my_access_token_secret'; 

    $vimeo = new phpVimeo($consumer_key, $consumer_secret); 
    $vimeo->setToken($token, $token_secret); 

    return $vimeo; 
} 
+1

您现在可以通过[点击选中标记]接受你的回答(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – Antony